· 

Webservice-Client in purem RPG


Einleitung

Hallo! Mein Name ist Klaus Mödinger und ich bin Kommanditist der comSID GmbH & Co. KG.

 

Im Blog-Post vom 11.06.2020 habe ich skizziert, wie man ein RPG-Programm in einen Webservice verpacken kann, ohne eine einzige Zeile Code zu schreiben. 

 

In diesem Artikel möchte ich zeigen, wie man diesen Webservice (und natürlich auch andere) mit purem RPG konsumieren kann. Man braucht kein Java, kein C oder C++, keine wsdl-zu-irgendwas-Compiler,  es genügt wirklich reines RPG!

 

Der Preis dafür: Programmierung  auf Socket-Ebene, sozusagen auf dem "Bare Metal". ;-)

 

Ich möchte auch nicht verschweigen, dass die gezeigte Lösung ab einer gewissen Komplexität des aufzurufenden Webservice anfängt, suboptimal zu werden.

 

Anyway, let's get started!


Ermitteln des POST-Requests und der SOAP-Struktur mit "SOAPUI"

Der RPG-Client sendet über eine Socket-Verbindung einen POST-Request mit angehängten SOAP-Daten.

 

Wer das HTTP-Protokoll, sowie SOAP und WSDL  in- und auswendig beherrscht, kann alles Notwendige aus dem WSDL ableiten. Wer es einfacher haben möchte verwendet SOAPUI. Mit diesem genialen Tool können SOAP-Services getestet werden, und es zeigt auch die Daten, die über die Leitung geschickt werden.

 

Die oberen zwei Bilder zeigen, was SOAPUI uns verrät. Die verbleibende Aufgabe: Die Daten zusammenzubasteln und an den Server zu schicken.


Das RPG-Programm

Hier können Sie sich das RPG-Programm und das Header-File für die Socket-Routinen herunterladen:

Download
cat100r.txt
Text Dokument 5.8 KB
Download
socketh.txt
Text Dokument 2.2 KB

In recht wenigen Codezeilen konsumiert das obige RPG-Programm einen SOAP-Webservice. Das Parsen der Serverantwort mit  %SCAN  ist eine Quick&Dirty-Lösung. Im Produktionseinsatz wird man hier etwas besseres haben wollen, z.B. XML-INTO.


Das war es schon wieder. Vielleicht dient der gezeigte Code dem einen oder anderen als Vorlage oder Anregung. 

 

Wer Fragen hat, kann diese gerne in einem Kommentar schreiben. Happy coding!

Kommentar schreiben

Kommentare: 0