Mit Profil SOAP-Webservice aufrufen in Funktion

Lokaler Webservice


Importieren Sie bitte folgendes Profil und setzen Sie es aktiv. Diese Profil dient uns als lokaler Webservice: Profile-Profile_as_web_service_dynamic_response.pak.

Webservice aufrufen


Importieren Sie nun folgendes Profil. Mit diesem Profil rufen wir in einer Funktion den lokalen Webservice auf: Profile-Calling_web_service_with_function.pak

Öffnen Sie bitte das Beispiel-Profil und navigieren Sie zu Phase 3.

Sie sehen in der Zielstruktur zwei Felder A und B mit Fixwerten, die wir für den Aufruf des Webservices verwenden.


images/download/attachments/159865937/1875-version-1-modificationdate-1701068892500-api-v2.png


Auf Feld call_web_service verwenden wir die Funktion call SOAP-WebService(a,b,c,d,e,f,g,h,i,j,k,[l,m,n,o,p]). Dort verwenden wir folgende Parameter-Werte.

Auf Feld read_result_from_list lesen wir am Ende lediglich das vom Webservice erhalten Ergebnis aus der Liste h aus.


Parameter

Wert

Erklärung

a

https://localhost:443/dw/Request/addition_web_service

Gibt die URL des Webservices an. Das ist unser lokaler Webservice.

d

./conf/add.xml

Siehe unten.

e

application/soap+xml

Gibt den MIME-Type des ausgehenden Requests an.

f

A,B

Hier listet man die Zielstruktur-Felder auf, deren Werte verwendet werden sollen, um die Platzhalter im Template zu ersetzen. Siehe Zielstruktur oben und Parameter d.

g

result

Das ist der Name des XML-Elements (oder mehrere Namen mit Komma getrennt), das wir aus der Webservice-Response auslesen wollen. Es können auch XPath-Ausdrücke verwendet werden, falls Sie dies möchten. Hinweis: Siehe Abschnitt Profil als SOAP-Webservice (dynamische Response).

h

mylist

Gibt den Namen der Liste an, in die die ausgelesenen Werte (siehe Parameter g) gespeichert werden sollen.


Erklärung zu Parameter d:

Wir benötigen für den Aufruf eine Template-Datei, die angibt, wie der Request auszusehen hat. Diese ist die gleiche Template-Datei wie in Abschnitt Mit Profil Webservice aufrufen im Eingangsagenten. Kopieren Sie das Template dort. Hinweis: Der Pfad muss mit ./conf/ beginnen.

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:wsdw="http://tempuri.org/"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- SOAPAction:https://beta.lobster.de/dw/Request/addWebService -->
<soapenv:Header>
</soapenv:Header>
<soapenv:Body>
<wsdw:Add>
<wsdw:intA>add_some_value_here</wsdw:intA>
<wsdw:intB>add_some_value_here</wsdw:intB>
</wsdw:Add>
</soapenv:Body>
</soapenv:Envelope>

Ersetzen Sie nun bei den Elementen intA und intB den Wert add_some_value_here mit den Platzhaltern @A@ und @B@ für die Namen der Zielstruktur-Felder, deren Werte wir verwenden wollen. Siehe auch Zielstruktur oben und Parameter f.

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:wsdw="http://tempuri.org/"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- SOAPAction:https://beta.lobster.de/dw/Request/addWebService -->
<soapenv:Header>
</soapenv:Header>
<soapenv:Body>
<wsdw:Add>
<wsdw:intA>@A@</wsdw:intA>
<wsdw:intB>@B@</wsdw:intB>
</wsdw:Add>
</soapenv:Body>
</soapenv:Envelope>

HTTP-Request-Header setzen


Manche Webservices benötigen zusätzliche Werte, die im HTTP-Header erwartet werden, wie z. B. eBay (Applikations-ID, etc.). Diese können wie folgt gesetzt werden.

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