SOAP Grundsätzliche Frage zur Response

25. Februar 2021 14:34

Hallo zusammen,

ich habe die schöne Aufgabe einen Automaten an NAV anzubinden. Der Automat kommuniziet über ein Webservice.
Das ich Daten empfangen kann und mit den Informationen in NAV weiterarbeiten kann, habe ich schon hinbekommen.

Nun sendet der Automat eine Auftragsnummer und erwartet dann Werte zu diesem Auftrag.
Hier genau hört dann mein Verständnis auf.
Den Wert empfangen und damit die Daten holen bekomme ich noch hin, aber wie "antworte" ich nun auf die Anfrage?

Ich hatte es erst mit einer Funktion in einer Codeunit versucht und dann die Parameter als var gekennzeichnet. Das scheint aber nicht der Weg zu sein.
In der Beschreibung des Automaten steht als Antwort folgendes Beispiel, siehe Bild.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: SOAP Grundsätzliche Frage zur Response

26. Februar 2021 16:07

hmm keiner? Ist das zu einfach und ich übersehe nur etwas?

Die meisten Beispiele im Netz zeigen, wie ich von Nav einen externen Webservice ansprechen kann.
Ich suche den umgekehrten Weg. Eine Maschine spricht Nav an und ich soll Daten in deren Format liefern.

Re: SOAP Grundsätzliche Frage zur Response

5. März 2021 11:34

Hallo LandorCaeyran,

Eine Var-Parameter als Rückgabewert eines SOAP-Webservices funktioniert definitiv. Das nutze ich regelmäßig.
Du kannst sogar ganze XMLPorts als Parameter einer CU-Funktion definieren (sowohl Input als auch Output (var)).

Wir haben auf dieser Basis ein komplettes Portal angebunden, das Daten an NAV sendet und als Antwort Ergebnisse dieser Anfrage erhält.

Wenn ich deine Frage richtig verstanden habe, benötigst du also eine Funktion mit folgenden Parametern:
1. OrderNo (Auftragsnr.)
2. XMLPort mit dem gewünschten Aufbau der Antwort. Dieser XMLPort muss dann eben dem Aufbau des Bildes erstellt werden.

Wir haben einen ähnlichen WebService gebaut, der eine Kontaktnr. angibt und dann über einen XMLPort die Informationen aus Tabelle 5050 ausgibt.
Im Anhang der Aufbau der Funktion und der SOAP-Request aus SOAP-UI. MemberNo (Kontaktnr) ist hierbei der Parameter, der in meiner Anfrage vorgegeben wird (1014876711).
Die XMLPort Felder sind mit ? gefüllt und werden dann Rückgabewerte in der Antwort befüllt
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: SOAP Grundsätzliche Frage zur Response

22. April 2021 15:19

Hallo,

in etwa. ich habe 2 Parameter.
Und der weg über den XML Port als Var geht eben NICHT. Ich kann keinen dritten Parameter einbauen. Leider habe ich keinen Einfluss auf die Abfrage des Fremdsystems.

Re: SOAP Grundsätzliche Frage zur Response

22. April 2021 15:40

Zum Verständnis, so sieht die Abfrage aus. Dort bekomme ich keinen "Response" Parameter unter, da ich keinen Einfluss auf die Abfrage habe.
Es fängt schon mit der Groß- und Kleinschreibung der Parameter an. Nav scheint nur Kleinschreibung zu akzeptieren :/

Code:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:com="http://com.domain.endung/">
   <soapenv:Header/>
   <soapenv:Body>
      <com:Identification>
         <com:Systemnumber>999</com:Systemnumber>
         <com:Identifier>001234567890</com:Identifier>
      </com:Identification>
   </soapenv:Body>
</soapenv:Envelope>

Re: SOAP Grundsätzliche Frage zur Response

7. Mai 2021 08:40

Ich habe solche Abfragen dann über eine Page gelöst.
Ich übergebe einen Filter und bekomme einen Datensatz mit den Daten zurück.