HTTPPOSTCLOB dans un RPG
Posté : lun. 22 févr. 2016, 15:42:05
Bonjour,
J'essaie d'appeler un Webservice depuis un programme RPG.
L'exécution du script SQL suivant dans Isérie Navigator marche.
Je me suis basé sur des exemples (formation volubis + pause café), pas de problèmes, j'ai bien la réponse.
Par contre dans mon SQLRPGLE, j'ai un code erreur 84 que je n'arrive pas à résoudre.
Le contenu de ma variable fonctionne sous iséries.
On ne fait pas comme ça pour depuis un RPG?
Merci d'avance pour vos réponses.
J'essaie d'appeler un Webservice depuis un programme RPG.
L'exécution du script SQL suivant dans Isérie Navigator marche.
Je me suis basé sur des exemples (formation volubis + pause café), pas de problèmes, j'ai bien la réponse.
Code : Tout sélectionner
VALUES SYSTOOLS.HTTPPOSTCLOB('xxxxx',
CAST (' <httpHeader>
<header name="Content-Type" value="text/xml;charset=utf-8"/>
<header name="application" value="XXXX"/>
<header name="key" value="XXXX"/>
</httpHeader>' AS CLOB(1K)),
CAST (' <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tar="http://xxxxxxx/">
<soapenv:Header/>
<soapenv:Body>
<tar:sendCodeCommande>
<numCmdTemp>TEST</numCmdTemp>
<numCmdFinal>ESSAI</numCmdFinal>
<fraisPort>12</fraisPort>
</tar:sendCodeCommande>
</soapenv:Body>
</soapenv:Envelope>' AS CLOB(10K)) ) ;
Code : Tout sélectionner
wa_url = 'http://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
str_sql = 'VALUES SYSTOOLS.HTTPPOSTCLOB(''' + %trim(wa_url) + ''','
+ ' CAST (''<httpHeader>'
+ ' <header name="Content-Type" value="text/xml;charset=utf-8"/>'
+ ' <header name="application" value="XXXXXX"/>'
+ ' <header name="key" value="XXXXXX"/>'
+ ' </httpHeader>'' AS CLOB(1K)),'
+ ' CAST (''<soapenv:Envelope xmlns:soapenv='
+ ' "http://schemas.xmlsoap.org/soap/envelope/"'
+ ' xmlns:tar="http://xxxxxxxxxxxxxxxxxxxxxxxxxxxxx/">'
+ ' <soapenv:Header/>'
+ ' <soapenv:Body>'
+ ' <tar:sendCodeCommande>'
+ ' <numCmdTemp>'+%trim(pe_CmdTarifeo)+'</numCmdTemp>'
+ ' <numCmdFinal>'+%trim(pe_CmdAS400)+'</numCmdFinal>'
+ ' <fraisPort>'+%char(wnfraisPort)+'</fraisPort>'
+ ' </tar:sendCodeCommande>'
+ ' </soapenv:Body>'
+ ' </soapenv:Envelope>'' AS CLOB(10K)))' ;
exec sql execute immediate :str_sql ;
if (sqlcod <> 0);
...
On ne fait pas comme ça pour depuis un RPG?
Merci d'avance pour vos réponses.