XMLservices



Projet XMLSERVICE



Ce projet qui était à l'origine en Open source a été intégré à l'IBM i en V7 / TR5 par le biais de la bibliothèque QXMLSERV


il est utilisé pour accéder aux informations IBMi , depuis PHP, Ruby, Node.JS et Python.

il peut être aussi être en mode CGI pour produire des webservices REST.


Installation du Produit

Téléchargez depuis le site http://youngiprofessionals.com/wiki/index.php/XMLSERVICE/XMLSERVICE

Restaurez XMLSERVICE et Compilez puis lancez

ou

en versions 7.1 , 7.2 , tenez vous à jour quant aux PTF sur 5770DG1 et utilisez QXMLSERV

 

Utilisation en mode Web service


Commençons par ce point qui permet de bien comprendre le principe et les paramètres attendus


Modification de la configuration Apache

ScriptAlias /cgi-bin/ /QSYS.LIB/QXMLSERV.LIB/ 
<Directory /QSYS.LIB/QXMLSERV.LIB/> 
 AllowOverride None 
 order allow,deny 
 allow from all 
 SetHandler cgi-script 
 Options +ExecCGI 
</Directory> 

L'API s'utilise de la manière suivante

Les mot-clés transmis peuvent être :

 <cmd>...commande 5250...</cmd>
 <cmd>...exécutable PASE...</cmd> 

<sh>...enchaînement de commandes QSH ( | admis)...</sh>
 <pgm name='PGM' lib='BIB' func='Fonction'>
<parm><data type='12P2'>...paramètre simple...</data></parm>
<parm><ds dim='xx'><data type='200A'>...paramètre complexe...</data></ds></parm>
<return><ds dim='xx'><data type='32A'>...paramètre retour...</data></ds></return>
</pgm>
 <sql>
<query>select * from vins</query>
<fetch block='all|un chiffre' desc='on|off'/>
</sql>


Utilisation

Lancement d'un commande

Résultat

 

Lancement d'une commande PASE

Résultat

Lancement d'un ordre SQL

Résultat


Utilisation en PHP avec le PHPtoolkit

Exemple d'appel d'un programme



Deux paramètres en entrée

 



Résultat ->


Exécution d'une commande



Résultat ->

Exécution d'une commande avec retour (ici RTVJOBA)

Résultat ->

 

Utilisation en Node.JS avec le toolkit correspondant

Sous Node.JS, vous pouvez accéder aux objets IBM i par un toolkit basé sur le même projet


Exemple, avec une commande système RTVJOBA





Autre exemple avec le programme vu en PHP

Rappel, deux paramètres en entrée

Lancement du pgm, récupération du résultat en XML (par défaut)





Lancement du pgm, transformation en JSON pour dérouler l'arbre



En Python

Exemple (RTVJOBA)




En mode Web

A aujourd'hui (et comme souvent) nous avons des problèmes avec le code page 297.


Mais après CHGJOB CCSID(37)



 

 

Copyright © 2015 VOLUBIS