Nous avons un souci lors du retour de quelques Web Services qui appel un programme RPG, ce souci se produit en SOAP et en REST,
nous renvoyons une structure avec un tableau.
Code : Tout sélectionner
d DS_OUTPUT DS
d OU_CERR 50A
d OU_MSGR 256A
d OU_COUNT 10I 0
d OU_SQL 4096A
d DS_DATA DS
d OU_DATA 10000A
*=============================================================================================
* Déclarations des procédures
*=============================================================================================
d WService PR
d P_IN LIKEDS(DS_INPUT)
d P_OUTPUT LIKEDS(DS_OUTPUT)
d P_DATA LIKEDS(DS_DATA) DIM(999)
<p_DATA>
<OU_DATA><![CDATA[<xml version="1.0" encoding="UTF-8"?>]]></OU_DATA>
</p_DATA>
<p_DATA>
<OU_DATA><![CDATA[<DATA><NACC>00002630</NACC></DATA>]]></OU_DATA>
</p_DATA>
<p_OUT>
<OU_CERR>0</OU_CERR>
<OU_COUNT>328</OU_COUNT>
<OU_MSGR/>
</p_OUT>
les balises de sortie <p_DATA> et <p_OUT> ont le p en minuscule bien que dans la définition de la structure nous les avons déclarés en tant que P_DATA et P_OUT
le fichier pcml semble correct
Code : Tout sélectionner
<pcml restUriPathTemplate="/" version="4.0">
<struct name="DS_INPUT" xmlRootElementName="P_IN">
<data length="3" name="IN_MOD" type="char" usage="inherit"/>
<data length="10" name="IN_PROG" type="char" usage="inherit"/>
<data length="60" name="IN_LITE" type="char" usage="inherit"/>
<data length="3" name="IN_VERD" type="char" usage="inherit"/>
<data length="10" name="IN_BIBL" type="char" usage="inherit"/>
<data length="3" name="IN_CLAN" type="char" usage="inherit"/>
<data length="4" name="IN_NDOS" type="char" usage="inherit"/>
<data length="3" name="IN_APPL" type="char" usage="inherit"/>
<data length="1000" name="IN_WHERE" type="char" usage="inherit"/>
<data length="3" name="IN_NUM_PAGE" type="char" usage="inherit"/>
<data length="3" name="IN_NB_ENREG" type="char" usage="inherit"/>
</struct>
<struct name="DS_OUTPUT">
<data length="50" name="OU_CERR" type="char" usage="inherit"/>
<data length="256" name="OU_MSGR" type="char" usage="inherit"/>
<data length="4" name="OU_COUNT" precision="31" type="int" usage="inherit"/>
<data length="4096" name="OU_SQL" type="char" usage="inherit"/>
</struct>
<struct name="DS_DATA">
<data length="10000" name="OU_DATA" type="char" usage="inherit"/>
</struct>
<program entrypoint="WSERVICE" errormessage="" httpheaders="*NONE" httpstatusonfailure="500"
httpstatusonsuccess="200" inputWrapperIdentifier="WServiceInput" name="WService"
outputWrapperIdentifier="WServiceResult" parseorder="P_OUT P_DATA" path="/QSYS.LIB/EURO4PRG.LIB/WWSVIEW.SRVPGM"
restConsumes="application/xml, application/json" restHttpRequestMethod="PUT"
restProduces="application/xml, application/json" threadsafe="false" trimmode="*TRAILING" wrapInputParams="false" wrapOutputParam="true">
<data name="P_IN" struct="DS_INPUT" type="struct" usage="input"/>
<data name="P_OUT" struct="DS_OUTPUT" type="struct" usage="output"/>
<data count="999" name="P_DATA" struct="DS_DATA" type="struct" usage="output"/>
</program>
</pcml>
Merci par avance