Web-Service aufrufen

Überblick

Das Beispiel zeigt die beiden wesentlichen Module für einen Web-Service-Aufruf:

module guide 1223 1
  • XSLT Converter zum Erstellen der Web-Service-Anfrage

  • Web-Service Medium oder Output Connector zum Senden der Anfrage und zum Empfangen des Ergebnisses (wenn vorhanden):

    • Ein Medium Connector kann eingesetzt werden, wenn der Web-Service ein Ergebnis zurücksendet, das im Workflow weiterverarbeitet werden soll.

      Der Medium Connector sendet die Anfrage, wartet auf das Ergebnis und übergibt es an das nachfolgende Modul im Workflow. So kann das Ergebnis z.B. in eine Datenbank geschrieben oder für Drittsysteme geeignet aufbereitet werden.

    • Der Einsatz eines Output Connectors ist sinnvoll, wenn die Anfrage eine One-Way-Operation ohne Rückgabe aufruft und keine weiteren Prozessschritte nötig sind. Technisch verhält sich der Output Connector genauso wie der Medium Connector, d.h. auch der Output Connector wartet auf das Ergebnis und hält es vor.

Web Service Connector konfigurieren

So gehen Sie vor

  1. Erzeugen Sie einen Web-Service Output Connector. Legen Sie beim Konfigurieren fest, dass die Definition des aufzurufenden Web-Service am Modul gespeichert werden soll.

  2. Geben Sie im Web-Service Editor an, wo die WSDL des aufzurufenden Web-Service zu finden ist und laden Sie diese WSDL.

    Zum Testen können Sie z.B. den Web-Service-Provider nutzen, siehe Web-Service anbieten.

    Wenn dieser Web-Service-Provider vorhanden und publiziert ist, gehen Sie so vor, um die Adresse der WSDL herauszufinden: Klicken Sie im Register Aufzurufender Service am rechten Ende der Zeile auf den Button und wählen Sie Publizierte Services anzeigen (siehe auch Dialog Aufzurufender Service). Im Webbrowser öffnet sich eine Liste aller Web-Services. Klicken Sie auf den Link [NamedesWebServices]. Die WSDL wird angezeigt. Kopieren Sie die URL in die Zwischenablage und fügen Sie diese im Register Aufzurufender Service in das Feld URL ein.

  3. Publizieren Sie den Konnektor.

  4. Erzeugen Sie einen Technical Workflow und fügen Sie den Web-Service Output Connector ein.

SOAP-Request erstellen

So gehen Sie vor

  1. Erzeugen Sie einen XSLT Converter und markieren Sie beim Konfigurieren die Option Eingangsnachricht ignorieren.

  2. Fügen Sie den XSLT Converter in den Technical Workflow ein.

  3. Öffnen Sie den XSLT Converter zum Bearbeiten.

  4. Klicken Sie im Bereich XML-Zieldatei auf das Icon module guide 1222 0 und wählen Sie Öffnen von > Web-Service Explorer. Der folgende Dialog öffnet sich:

    module guide 1225 0
  5. Wählen Sie den Web Service Connector aus und die aufzurufende Operation (in Zusammenhang mit Request). Klicken Sie auf Fertig stellen, um den Dialog zu schließen.

    Die Struktur des SOAP-Requests, die der Web-Service erwartet, wird angezeigt.

  6. Ziehen Sie das Root-Element der erzeugten SOAP-Nachricht per Drag-and-Drop nach oben auf das xsl:template- Element.

  7. Passen Sie die Werte im Bereich XML-Quelle an, z.B.:

    module guide 1226 1
  8. Publizieren Sie den XSLT Converter.

  9. Testen:

    1. Setzen Sie im Technical Workflow einen Startpunkt an den XSLT Converter und wählen Sie im Kontextmenü Test ohne Datei starten.

    2. Öffnen Sie nach dem Test den Watchpoint hinter dem Web Service Connector, um das Ergebnis, die SOAP- Response, anzuzeigen.

Um dynamische Web-Service-Aufrufe zu erzeugen, fügen Sie vor dem XSLT Converter weitere Module ein, die z.B. die zu verwendenden Web-Service-Aufrufparameter aus einer Datenbank auslesen und an den XSLT Converter übergeben. Im XSLT Converter bilden Sie diese Parameter dann auf Teile der SOAP-Nachricht ab.

Setzen von Cookies/Session-Cookies

Wenn eine Webservice-Response einen Set-Cookie-Header enthält, wird deren Inhalt in eine XML-Variable WSCallerCookies mit folgender Struktur geschrieben:

<Cookies>
    <Cookie uri="https://192.168.109.1" name="vmware_soap_session" domain="192.168.109.1" path="/" version="0">
        678E5BDC-52FC-4E38-B975-6880792AF6FA
    </Cookie>
</Cookies>
  • uri

    aufgerufene URL (ohne den Pfad)

  • name

    Name des Cookies

  • domain

    Name der Domain, für die das Cookie gilt

  • path

    Pfad/Pfadpräfix, für den das Cookie gültig ist

  • ports

    kommaseparierte Port-Liste (per Default nicht gesetzt)

  • version

    • 0

      Verwendung der Netscape-Syntax

    • 1

      Verwendung der Syntax nach RFC 2965/2109 (Standard)

Nachfolgende Webservice-Aufrufe lesen die WSCallerCookies-Variable. Für den Webservice-Aufruf werden die entsprechenden Cookies automatisch gesetzt. Dabei müssen Domain/Path des Cookies und des aufgerufenen Web-Service übereinstimmen.

Wenn Sie über Workflows mehrere aufeinander folgende Webservice-Aufrufe implementiert haben und wenn diese Aufrufe Session-Cookies benötigen, müssen Sie nur dafür sorgen, dass die WSCallerCookies-Variable an das nächste Modul übergeben wird.