Maintenant que nous connaissons les procédures à appeler, nous pouvons écrire notre RPG ILE afin de consommer notre Service Web.
Écriture du programme Client
1 – Intégration des prototypes générés automatiquement
2 – On renseigne le « end-point ». En l’occurrence nous aurions pu mettre ‘http://www.webservicex.net/stockquote.asmx’. *BLANKS signifie que l’on prend le « end-point » défini directement dans le document WSDL.
3 – Constitution du paramètre à envoyer.
4 – Ouverture de la connexion, récupération du handle de connexion dans un pointeur.
5 – Appel du Service Web avec le handle de connexion et les paramètres en entrée et en sortie.
6 – Clôture de la connexion en lui passant le handle de connexion, pas de valeur en retour.
Compilation et liage des modules
Il faut maintenant compiler ce programme et y intégrer le programme de service généré automatiquement par l’utilitaire comme indiqué ci-dessous.
Il ne nous manque plus qu’à tester notre programme avec un CALL MYLIB/STOCKQUOTE ‘IBM’.
Échec au liage
En cas d’échec lors du CRTPGM dû au liage à cause d’un problème de CSSID, il vous faudra modifier le fichier source StockQuoteSoap.rpgleinc avec RDP/RDI (ou avec la commande EDTF) afin de remplacer les caractères @ par un à.
Puis recompilez le tout en procédant comme montré ci-dessous :
Conclusion
Il n’a jamais été aussi facile de consommer un Web Service avec l’utilitaire wsdl2rpg.sh pour un programmeur RPG ILE. L’IBM i qui offre déjà un socle technique solide et mature sait aussi faire preuve d’efficacité dans l’univers des nouvelles technologies.
Téléchargez cette ressource
Travail à distance – Guide complet pour les Directions IT et Métiers
Le travail à distance met à l'épreuve la maturité numérique des entreprises en termes de Cybersécurité, d'espace de travail, de bien-être des collaborateurs, de communication et gestion de projet à distance. Découvrez, dans ce nouveau Guide Kyocera, quels leviers activer prioritairement pour mettre en place des solutions de travail à domicile efficaces, pérennes et sécurisées.