call SOAP-WebService(a,b,c,d,e,f,g,h,i,j,k,[l,m,n,o,p])

Ruft einen Webservice auf unter Verwendung von SOAP 1.2. Authentifizierung via HTTP Authentication ist möglich. Der HTTP-Request verwendet die Methode POST. Die HTTP Response Header werden in die Variablen VAR_HTTP_<Name_des_Headers> kopiert, falls diese Variablen definiert wurden. So wird z. B. der Wert vom HTTP Header Content-Length in VAR_HTTP_CONTENT-LENGTH kopiert (alles in Großbuchstaben geschrieben).

Zum Erzeugen von Webservice-Anfragen ist ein XML-Template notwendig, das zur Laufzeit mit den Werten aus im Mapping vorhandenen Zielfeldern oder Variablen gefüllt wird. Die Ergebniswerte aus dem Aufruf wiederum werden in eine oder mehrere Listen geschrieben, aus der man sich im weiteren Verlauf über entsprechende Funktionen bedienen kann.

XML-Template-Format


Das für die Nutzung von Webservices verwendete Format erinnert entfernt an das Format, das für die Erzeugung von XML unter Nutzung der entsprechenden Integration Units verwendet wird. Da konzeptionell hier aber keine Schleifen existieren können, wird auf die Verwendung von Knoten verzichtet, sondern nur die Platzhalter in der Form @Platzhaltername@ verwendet.

Das Template selbst enthält das komplette SOAP-XML, wie es zum Server gesendet werden soll. Siehe den Abschnitt Beispiele für eine genauere Beschreibung.

Parameterbeschreibung


Parameter

Beschreibung

a

Endpoint-URL des Webservices.

b

(optional) Benutzername, sofern notwendig.

c

(optional) Passwort, sofern notwendig.

d

Relativer Pfad einer XML-Template-Datei, der mit ./conf/ beginnen muss.

e

(optional) MIME Type des ausgehenden Requests, z. B. application/soap+xml. Default: text/xml

f

Kommaseparierte Liste der Zielfeld- bzw. Variablennamen, die für das Ersetzen der Platzhalter im Template verwendet werden sollen.

g

Kommaseparierte Liste der XPath-Ausdrücke oder Element-Namen in der Webservice-Antwort (mit # für Attributname).

h

Der Name der Liste, in die die Werte geschrieben werden, die anhand g aus der Webservice-Antwort ermittelt wurden.

i

Bei true wird beim Scheitern des Webservice-Aufrufs der Funktionen mit einem Fehler abgebrochen. Bei false wird die Funktion mit dem Rückgabewert false beendet und die Fehlermeldung des gescheiterten Webservice-Aufrufs wird in System-Variable VAR_SYS_SOAP_FAULT gespeichert, falls diese angelegt ist.

j

Bei true werden pro Antwortelement aus der Liste in g jeweils eine Liste erzeugt, in der alle vorkommenden Werte des jeweiligen Antwortelements abgelegt werden. Der Name der erzeugten Liste setzt sich aus h und dem aktuellen Element g zusammen. Bei h=wsResult und Antwortelement aus g=ResponseCode ergäbe sich der Listenname wsResult_ResponseCode.

k

(optional) Timeout in Sekunden. Werte kleiner 1 werden ignoriert. Default: 90.

l

(optional) true , falls der Webservice durch die DMZ-Installation ausgeführt werden soll. Default: false.

m

(optional) ID des Zertifikats, falls dieses für eine SSL-Verbindung benötigt wird. Default: 0.

n

(optional) Die Auswertung der Webservice-Response kann anstatt über die Parameter g, h, j alternativ auch über ein XML-DOM-Objekt direkt erfolgen. Dazu muss hier in Parameter n ein Name vergeben werden, unter diesem das DOM-Objekt gespeichert wird. Die Parameter g, h, j können in diesem Fall leer bleiben. Die Auswertung des DOM-Objekts kann anschließend über die Funktion execute script(a) with optional parameters b-j erfolgen.

o

(optional) HTTP Channel ID. In diesem Fall können Parameter b, c und m leer gelassen werden, da sie vom Kanal kommen.

p

(optional) Der Name einer Map für optionale HTTP-Request-Header. Ein Eintrag in der Map (Schlüssel, Wert) definiert dabei im Schlüssel den Namen des HTTP-Request-Headers (wird in exakt selber Schreibweise verwendet) und im Wert den Wert des HTTP-Request-Headers. Hinweis: Enthält die Map einen Eintrag mit Schlüssel UseAuthorizationPreemptive und Wert true, dann wird Preemptive Authentication verwendet. Wichtiger Hinweis: Der Schlüssel UseAuthorizationPreemptive gilt nicht für Kanäle, die in Parameter o eingetragen sind (hier gilt immer die Kanal-Einstellung). Hinweis: Siehe auch Funktion add to map(key a, value b, name of map c, [skip empty d]).

Hinweis: Siehe alternativ auch folgenden Abschnitt.


Zusätzliche HTTP-Request-Header


Hinweis: Siehe alternativ auch Parameter p.

Um im POST-Request zusätzliche HTTP-Header zu senden, können in die XML-Template-Datei (Parameter d) zusätzliche XML-Kommentar-Zeilen eingefügt werden.


XML-Kommentar

Sendet den HTTP-Header

Bemerkung

<!-- SOAPAction: http://server.xyz/order -->

SOAPAction: http://server.xyz/order

Bitte Klein-/Großschreibung beachten.

<!-- addheader: X-Digest = blablubb -->

X-Digest: blablubb


<!-- addheader: key2 = wert2 -->

key2: wert2

Allgemeine Syntaxform.


Damit kann bei Bedarf auch die preemptive authentication konfiguriert werden.