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.