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.
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]).