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 : 198
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 : 198
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

Luka
Messages : 1
Enregistré le : mar. 08 août 2023, 05:23:16

Re: Soucis format de retour des Web Services

Message par Luka »

Bonjour,

Il pourrait y avoir une différence de configuration ou de traitement au niveau de la partie qui génère les réponses XML dans votre code RPG ou dans le processus de transformation XML.

Je vous recommande de vérifier les points suivants :

Assurez-vous que le code RPG qui génère les sorties XML respecte correctement les noms de balises définis dans le PCML.

Vérifiez si d'autres transformations ou couches intermédiaires entre le code RPG et la génération XML modifient les noms de balises.

Si vous utilisez un framework ou une bibliothèque pour la gestion des Web Services, vérifiez sa documentation pour vous assurer que les noms de balises sont correctement traités.

Si possible, examinez les logs ou les informations de débogage pour suivre la trajectoire des données entre le RPG, le PCML et la génération XML.

Cordialement,
Visitez ici mon site

Répondre