Sie sehen sich Hilfeinhalte der folgenden Version an:

Übersicht

AEM Forms können Formularautoren das Ausfüllen der Formulare noch einfacher und besser gestalten, indem sie den Aufruf von Webdiensten über Felder eines adaptiven Formulars ermöglichen. AEM Forms unterstützt Webdienste, die in Web Services Description Language (WSDL) 1.1 mit Dokument/wörtlichem Stil beschrieben sind und SOAP-Endpunkte aufweisen.

Um einen Webdienst aufzurufen, können Sie entweder eine Regel im Visual Editor erstellen oder mithilfe der guidelib.wsdlUtils.invokeWebService-API im Codeeditor des Regeleditors JavaScript angeben.

In diesem Dokument wird das Schreiben von JavaScript in der guidelib.wsdlUtils.invokeWebService-API für den Aufruf von Webdiensten beschrieben. 

guidelib.wsdlUtils.invokeWebService-API

Die guidelib.wsdlUtils.invokeWebService-API ruft einen Webservice über ein Feld in einem adaptiven Formular auf. Für die API gilt die folgende Syntax:

guidelib.wsdlUtils.invokeWebService (wsdlPath, invokeData, successHandler, faultHandler, callbackData)

Für die API sind die folgenden Parameter erforderlich.

Parameter Beschreibung
wsdlPath HTTP-Pfad zum WSDL-Webdienst.
invokeData Struktur zur Angabe von Details zur Webdienst-Operation. Weitere Informationen finden Sie unter invokeData structure.
successHandler Webdienst-Handler, der bei erfolgreichem Aufruf des Webdienstes aufgerufen werden soll.
faultHandler Webdienst-Handler, der bei fehlgeschlagenem Aufruf des Webdienstes aufgerufen werden soll.
callbackData Daten, die Aufruf von successHandler und errorHandler bereitgestellt werden sollen.

invokeData-Struktur

Die invokeData-Struktur in der guidelib.wsdlUtils.invokeWebService-API gibt Details zu der auszuführenden Webdienst-Operation an. Die Struktur weist die folgende Syntax auf.

var invokeData = {
operationName, 
input, 
inputRoot, 
soapActionURI, 
serviceEndPoint, 
namespace, 
port
}

Die invokeData-Struktur gibt die folgenden Informationen zur Webdienst-Operation an.

Parameter Beschreibung
operationName Name der auszuführenden Webdienst-Operation ausgeführt.
input Eingabe für die Webdienst-Operation im JSON-Format. Stellen Sie sicher, dass der Eingabe-Stammordner nicht hierin enthalten ist. Die guidelib.wsdlUtils.invokeWebService-API verwendet den Namen der Operation als Eingabe. Wenn sich der Eingabe-Stammordner vom Operationsnamen unterscheidet, verwenden Sie den Parameter inputRoot.
inputRoot (optional) Eingabe-Stammordner, falls von operationName abweichend.
soapActionURI (optional) URI für den SOAPAction-Header. Falls dies in WSDL nicht vorhanden ist, lädt die API den WSDL-Code vom Server herunter und verwendet den Wert des Elements port.
serviceEndPoint (optional) Die location-Eigenschaft des Elements soap:address für den erforderlichen Anschluss. Falls dies in WSDL nicht vorhanden ist, lädt die API den WSDL-Code vom Server herunter und verwendet den Wert des Elements port.
namespace (optional) Der Namespace für das WSDL-Schema. Falls dies in WSDL nicht vorhanden ist, lädt die API den WSDL-Code vom Server herunter und verwendet den Wert des Elements port.
port
(optional)
Der im WSDL angegebene Name des Anschlusses. Sind die Parameter port, soapActionURI und namespace im WSDL nicht vorhanden, sucht die API den Anschluss (nur SOAP), über den diese Operation bereitgestellt wird. Sind mehrere Anschlüsse vorhanden, für die diese Operation implementiert ist, schlägt die Funktion fehl.

Hinweis:

Einige Parameter in der invokeData-Struktur sind als optional markiert, da der WSDL-Code herunterladen und geparst wird, um die erforderlichen Informationen abzurufen. Für eine effizientere Funktionsweise der Operation sollten Sie jedoch eventuell optionale Parameter angeben.

Beispielskript zum Aufrufen eines Webdiensts

Im folgenden Beispielskript wird mithilfe der guidelib.wsdlUtils.invokeWebService-API die Webdienst-Operation getZipInfo aufgerufen. Bei diesem Vorgang wird die Postleitzahl als Eingabe genutzt. Zurückgegeben werden die dazugehörige Stadt und das Bundesland. Wenn der Webdienst-Vorgang keine Informationen finden kann, gibt ein Fehler-Handler die Meldung Daten für Postleitzahl nicht aus.  

var wsdlPath = 'http://www.example.com/ZIPInfo?WSDL';
var input = '{"zipCode" : "232423"}';
var invokeData = {};
invokeData.operationName = 'getZipInfo';
invokeData.input = input;
invokeData.soapActionURI = 'http://www.example.com/ZIPInfo';
invokeData.serviceEndPoint = 'http://www.example.com/ZIPInfo.asmx';
invokeData.port = 'ZIPInfoSoap';

successHandle : function (serviceOutput) {
    var outputJSONObj = JSON.parse(serviceOutput);
                // use outputJSONObj["City"]
                // use outputJSONObj["State"]
},

errorHandler : function () {
                window.alert ('could not get the ZIP information');
},

var myData = {'param' : 'value'};
guidelib.wsdlUtils.invokeWebService (wsdlPath, invokeData, successHandler, errorHandler, myData);

Überlegungen beim Arbeiten mit Webdiensten

Beachten Sie beim Aufrufen von Webdiensten über adaptive Formulare die folgenden Einstellungen:

  • Sie können Webdienste aufrufen, die in WSDL 1.1 mit Dokument/wörtlichem Stil geschrieben sind und SOAP-Endpunkte aufweisen.
  • Webdienste, die Authentifizierung erfordern, werden derzeit nicht unterstützt.
  • Webdienstvorgänge, die Argumente aus mehreren Namespaces verwenden, werden nicht unterstützt.
  • Schließen Sie das root-Element nicht in die input-Struktur ein.  

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie