Soucis format de retour des Web Services

configuration Apache, Zend et PHP , Web services
Répondre
ESTEVES
Messages : 4
Enregistré le : jeu. 02 janv. 2020, 11:11:47
Localisation : PFASTATT
Contact :

Soucis format de retour des Web Services

Message par ESTEVES »

Bonjour à tous,
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)

     
en sortie nous avons

<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>
une idée ?

Merci par avance

nbonnet
Messages : 184
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: Soucis format de retour des Web Services

Message par nbonnet »

Bonjour Emmanuel,

Pas d'idée particulière non !

Le PCML semble OK. Le prototype aussi ...

Quelques pistes :
- il n'y a pas eu de recompilation depuis la dernière génération du PCML ? Il est généré dans le module ou directement sur l'IFS ?
- peux-tu montrer le Procedure Interface (PI) ? Je pense que c'est lui qui est discriminant, le prototype étant facultatif
- as-tu essayé de désinstaller/réinstaller le service ?
Nathanaël

ESTEVES
Messages : 4
Enregistré le : jeu. 02 janv. 2020, 11:11:47
Localisation : PFASTATT
Contact :

Re: Soucis format de retour des Web Services

Message par ESTEVES »

Bonjour Nathanaël,

voici le PI

Code : Tout sélectionner

p WService        B                   EXPORT
     d WService        PI
     d      P_IN                           LIKEDS(DS_INPUT)
     d      P_OUT                          LIKEDS(DS_OUTPUT)
     d      P_DATA                         LIKEDS(DS_DATA) DIM(999)
j'ai réinstallé complètement le WS rien n'y fait
Le PCML a été généré sur l'IFS mais il doit être géré par le module.

Encore merci

Emmanuel

nbonnet
Messages : 184
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: Soucis format de retour des Web Services

Message par nbonnet »

Tout est cohérent, honnêtement je n'ai pas d'idée supplémentaire

Si tu es à jour des GROUP PTF HTTP et JAVA, ouvre un incident ?

bon weekend
Nathanaël

Répondre