Mit Profil Webservice aufrufen im Eingangsagenten

Importieren Sie bitte folgendes Profil und setzen es aktiv: Profile-Local_Web_Service.pak

Diese Profil dient uns als lokaler Webservice (dazu später mehr).

Legen Sie nun ein neues Profil Call_Web_Service an und wählen Sie bitte den zeitgesteuerten Eingangsagenten vom Typ HTTP aus.


Profil - Den Eingangsagenten konfigurieren


images/download/attachments/69043894/805-version-1-modificationdate-1650616499695-api-v2.png


(1) Tragen Sie hier http://localhost/dw/Request/addWebService ein. Das ist unser lokaler Webservice.

(2) Setzen Sie diese Checkbox.


WSDL


images/download/attachments/69043894/806-version-1-modificationdate-1650616509328-api-v2.png

(3) Klicken Sie auf diesen Button. Es erscheint ein neuer Dialog.


images/download/attachments/69043894/819-version-1-modificationdate-1650882482123-api-v2.png


In (4) erscheint Ihre eingetragene URL (1) mit der Endung ?wsdl. Wenn Sie nun auf (5) klicken, erhalten Sie in (6) eine Liste aller verfügbaren Methoden (in unserem Fall nur eine).

Was passiert hier? Systeme, die Methoden über einen Webservice anbieten, liefern in der Regel eine WSDL-Datei (Web Service Definition Language). Dies ist eine "normale" XML-Datei mit klar definiertem Aufbau. Darin ist enthalten, welche Methoden mit welchen Parametern auf diesem Server verfügbar sind.


WSDL - Methode auswählen


Wenn Sie nicht unbedingt WSDL-Dateien lesen und verstehen wollen, zeigt Ihnen Lobster_data nun die möglichen Webservice-Methoden von diesem Server (6). Wählen Sie bitte die Methode Add aus (diese Methode addiert zwei Zahlen) und klicken Sie (7). Damit wird Ihnen automatisch eine Vorlage für den SOAP-Request erzeugt, siehe folgender Screenshot.


WSDL - Fertigstellen


images/download/attachments/69043894/820-version-1-modificationdate-1650882495224-api-v2.png


Fast am Ziel. Lobster_data bereitet Ihnen die XML-Datei (die SOAP-Request-Vorlage) so auf, wie diese gewählte Methode die Eingangsdaten benötigt.

(8) Ersetzen Sie nun bitte den Text add_some_value_here mit 1 und 2 (kommt zweimal vor).

(9) Klicken Sie nun auf diesen Button. Es erscheint ein Dialog mit der Antwort des Servers. Darin finden Sie den Text <result>3</result>.


images/download/attachments/69043894/821-version-2-modificationdate-1660798124638-api-v2.png


(10) Abschließend können Sie hier die Quellstruktur für diese Methode automatisch erstellen lassen.

(11) Manche Server benötigen den HTTP-Header SOAPAction. Während der XML-Erzeugung wird der Wert hinter SOAPAction: in Kommentar (11) ausgelesen und verwendet als Wert für diesen (automatisch erzeugten) HTTP-Header.

Dynamische Werte


Natürlich will man wohl nicht immer 1 und 2 addieren, sondern diese Zahlen dynamisch übergeben. Dazu erstellt man ein zusätzliches Profil, das z. B. den ersten und zweiten Wert aus einer Datenbank liest und zwei Variablen übergibt, indem es im Ausgang unser Profil ruft. Nun tragen wir in unserem Profil statt der Werte 1 und 2 die Platzhalter @MSG_CALL_VARIABLE_1@ und @MSG_CALL_VARIABLE_2@ ein. Vergessen Sie nicht diese Variablen MSG_CALL_VARIABLENNAME in unserem Profil zu definieren. Siehe auch Abschnitt Variablen mit Präfix MSG_CALL_.

SOAP?


In diesem Beispiel wurden Daten per SOAP-XML ausgetauscht. Der Request ist von einem Envelope umgeben (<soap:envelope>....</soap:envelope>). Die Daten für die Übertragung werden in der Regel in den Body gepackt (<soap:body>....</soap:body>). Die Response wird in der gleichen Art und Weise zurückgeliefert. Lobster_data erzeugt und parst die Daten des Bodies genau wie bei jeder anderen XML-Datei.