4D v16.3WEB SERVICE CALL |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
WEB SERVICE CALL
WEB SERVICE CALL
Der Befehl WEB SERVICE CALL ruft einen Web Service durch Senden einer HTTP Anfrage auf. Diese Anfrage enthält die SOAP Meldung, die zuvor mit dem Befehl WEB SERVICE SET PARAMETER erstellt wurde. Jeder nachfolgende Aufruf von WEB SERVICE SET PARAMETER löst die Erstellung einer neuen Anfrage aus. Die Ausführung von WEB SERVICE CALL entfernt die Ergebnisse von zuvor aufgerufenen Web Services und ersetzt sie durch die neuen Ergebnisse. In ZugriffURL übergeben Sie die vollständige URL für den Zugriff auf den Web Service. Verwechseln Sie diese URL nicht mit der für die WSDL Datei, welche den Web Service beschreibt.
In SoapAktion übergeben Sie den Inhalt des Feldes SOAPAction der Anfrage. Es enthält in der Regel den Wert “ServiceName#MethodName”. In MethodenName übergeben Sie den Namen der entfernten Methode, d.h. die zum Web Service gehört, welche Sie ausführen wollen. In Namensraum übergeben Sie den XML Namensraum für die SOAP Anfrage. Weitere Informationen dazu finden Sie im Handbuch 4D Designmodus. Der optionale Parameter KomplexTyp spezifiziert die Konfiguration der empfangenen bzw. gesendeten Parameter des Web Service, die mit den Befehlen WEB SERVICE SET PARAMETER und WEB SERVICE GET RESULT definiert wurden. Der Wert von KomplexTyp richtet sich nach dem Publikationsmodus des Web Service (DOC oder RPC, siehe Handbuch 4D Designmodus) und nach seinen anderen Parametern. In KomplexTyp müssen Sie eine der vordefinierten Konstanten unter dem Thema Web Services (Client) übergeben:
Zur Erinnerung: Die Merkmale der Eingangs- bzw. Ausgangsparameter werden aus Sicht der Proxy-Methode/Web Service bewertet.
Nachfolgende Tabelle zeigt die möglichen Einstellungen mit den dazugehörigen Konstanten:
Sie können also diese Einstellungen implementieren. In allen Fällen verwaltet 4D die Formatierung der SOAP Anfrage, die an den Web Service gesendet wird und seinen „envelope“ (Umschlag). Es ist Ihre Aufgabe, den Inhalt der Anfrage gemäß der verwendeten Einstellung zu formatieren. Hinweis: Auch wenn Daten-Arrays komplexe XML Typen sind, behandelt 4D diese als einfache Typen. Das ist die am leichtesten verwendbare Einstellung. In diesem Fall enthält der Parameter KomplexTyp die Konstante Web Service Dynamic oder wird ausgelassen. In diesem Fall enthält der Parameter KomplexTyp die Konstante Web Service Manual In. Mit dieser Einstellung müssen Sie jedes XML Quellelement dem Web Service “manuell” als BLOB übergeben, und zwar über den Befehl WEB SERVICE SET PARAMETER. C_BLOB($1) In diesem Fall enthält der Parameter KomplexTyp die Konstante Web Service Manual Out. Der Web Service gibt jeden Ausgabeparameter als XML Element, gespeichert in einem BLOB zurück. Sie finden diesen Parameter über den Befehl WEB SERVICE GET RESULT wieder. Sie können dann den Inhalt des erhaltenen BLOB mit den XML Befehlen von 4D durchlaufen. C_BLOB($0) In diesem Fall enthält der Parameter KomplexTyp die Konstante Web Service Manual. Jeder Eingabe- und Ausgabeparameter muss dann als XML Element in BLOBs gespeichert werden, wie in den beiden obigen Einstellungen beschrieben. C_BLOB($0) Ein Proxy, das eine Methode für ein DOC Web Service aufruft, ist ähnlich zum Proxy, das eine Methode für ein RPC Web Service über komplexe Eingabe- und Ausgabeparameter aufruft. C_BLOB($0) Hinweis: Für DOC Web Services spielt der Wert der als Parameter übergebenen Strings (“MyXMLInput” und “MyXMLOutput” s.o.) keine Rolle; Sie können auch leere Strings übergeben "". Tatsächlich verwendet die SOAP Anfrage mit dem XML Dokument diesen Wert nicht. Es ist jedoch zwingend, diese Parameter zu übergeben. Um einen Web Service im DOC Modus bzw. RPC Modus mit komplexen Typen zu veröffentlichten, sollten Sie folgendermassen vorgehen:
Der Parameter * dient zum Optimieren von Aufrufen. Ist dieser Parameter übergeben, schließt der Befehl nach seiner Ausführung nicht die von dem Prozess verwendete Verbindung. Der nächste Aufruf von WEB SERVICE CALL verwendet wieder dieselbe Verbindung, wenn der Parameter * übergeben ist, usw. Um die Verbindung zu schließen, führen Sie den Befehl ohne den Parameter * aus. Diese Vorgehensweise beschleunigt signifikant die Bearbeitung aufeinanderfolgender Aufrufe mehrerer Web Dienste auf demselben Server, insbesondere in einer WAN Konfiguration (z.B. über Internet). Beachten Sie, dass diese Vorgehensweise von der “keep-alive” Einstellung des Web Server abhängt. Diese Einstellung weist in der Regel pro Verbindung eine max. Anzahl für Anfragen zu und kann auch Anfragen abweisen. Ist die max. Anzahl Anfragen für WEB SERVICE CALL in derselben Verbindung erreicht oder sind keine keep-alive Verbindungen erlaubt, erstellt 4D für jede Anfrage eine neue Verbindung. Wurde die Anfrage korrekt geroutet und hat sie der Web Service akzeptiert, wird die Systemvariable OK auf 1 gesetzt. Sonst erhält sie 0 (Null) und ein Fehler wird zurückgegeben
Siehe auch
|
EIGENSCHAFTEN
Produkt: 4D GESCHICHTE
Geändert: 4D v11 SQL ARTIKELVERWENDUNG
4D Programmiersprache ( 4D v16) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||