2017-10-11 6 views
0

Aidez-moi à résoudre ce problème.Appelez le service webservice pour le programme rpgle

J'ai écrit un programme de service Web de post-traitement dans rpgle. Je recevrai l'entrée de xml pour la commande d'achat. Si le succès du processus signifie, je devrais retourner l'accusé de réception en tant que réponse xml. Ici mon problème est, j'ai déclaré la structure de données d'article comme tableau avec dim (9). donc si élément vide également, service Web générant xml pour les éléments vides. Je ne sais pas comment contrôler. existe-t-il un autre moyen de contrôler dans le programme ou dans le déploiement de service Web? s'il vous plaît aider

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<WBSRVGET5Result> 
    <BROKERACKNOWLEDGEMENT> 
     <IDENTIFICATION> 
      <DATE>2017-06-12T08:33:25</DATE> 
      <FROMORG_ID>xxxxx</FROMORG_ID> 
      <MESSAGEPROTOCOL_ID>PurchaseOrder</MESSAGEPROTOCOL_ID> 
      <SENDERORG_ID>xxxxx</SENDERORG_ID> 
      <TOORG_ID>Vendor Name here</TOORG_ID> 
     </IDENTIFICATION> 
     <ORDERHEADER> 
      <ACKNOWLEDGEMENTTYPE></ACKNOWLEDGEMENTTYPE> 
      <BACKORDEROK>0</BACKORDEROK> 
      <BROKERCREATEDDATE>2017-06-09</BROKERCREATEDDATE> 
      <BROKERORDERID>09442000</BROKERORDERID> 
      <CUSTOMERPONUMBER>997545</CUSTOMERPONUMBER> 
      <FREIGHTPAYMENTMETHOD>P</FREIGHTPAYMENTMETHOD> 
      <OVERALLPROCESSSTATUS>P</OVERALLPROCESSSTATUS> 
      <REQUESTEDSHIPDATE>2017-08-21</REQUESTEDSHIPDATE> 
      <SHIPMETHOD>90</SHIPMETHOD> 
      <SHIPPINGINSTRUCTIONS></SHIPPINGINSTRUCTIONS> 
      <SUBSTITUTIONOK>0</SUBSTITUTIONOK> 
      <VENDORNUMBER>0090000484</VENDORNUMBER> 
      <VENDORORDERID></VENDORORDERID> 
      <SOLDTO> 
       <SOLDTOADDRESS1>PO BOX 808</SOLDTOADDRESS1> 
       <SOLDTOADDRESS2></SOLDTOADDRESS2> 
       <SOLDTOCITY>WABASSO</SOLDTOCITY> 
       <SOLDTOCONTACTNAME>SHIR BARTON</SOLDTOCONTACTNAME> 
       <SOLDTOCOUNTRY>(77</SOLDTOCOUNTRY> 
       <SOLDTOEMAIL></SOLDTOEMAIL> 
       <SOLDTOFAX>(772)589-5019</SOLDTOFAX> 
       <SOLDTONAME>CITY DSP</SOLDTONAME> 
       <SOLDTOPHONE>(772)589-5835</SOLDTOPHONE> 
       <SOLDTOSTATE>FL</SOLDTOSTATE> 
       <SOLDTOZIP>32970</SOLDTOZIP> 
      </SOLDTO> 
      <SHIPTO> 
       <BROKERSHIPTONUMBER>66981</BROKERSHIPTONUMBER> 
       <SHIPTOADDRESS1>9080 N US 1</SHIPTOADDRESS1> 
       <SHIPTOADDRESS2></SHIPTOADDRESS2> 
       <SHIPTOCITY>WABASSO</SHIPTOCITY> 
       <SHIPTOCONTACTNAME>ROCKURS LDSP</SHIPTOCONTACTNAME> 
       <SHIPTOCOUNTRY>US</SHIPTOCOUNTRY> 
       <SHIPTOEMAIL>grower.com</SHIPTOEMAIL> 
       <SHIPTOFAX>(772)589-5019</SHIPTOFAX> 
       <SHIPTONAME>ROCK CITY NURS LDSP</SHIPTONAME> 
       <SHIPTOPHONE>(772)589-5835</SHIPTOPHONE> 
       <SHIPTOSTATE>FL</SHIPTOSTATE> 
       <SHIPTOZIP>32970</SHIPTOZIP> 
      </SHIPTO> 
     </ORDERHEADER> 
     <ORDERDETAILS> 
      <ITEM> 
       <BROKERLINEITEMNO>10</BROKERLINEITEMNO> 
       <BROKERMATERIALNO>4091391972084</BROKERMATERIALNO> 
       <COMMITTEDINVPONO></COMMITTEDINVPONO> 
       <CONFIRMEDQTY>168.0</CONFIRMEDQTY> 
       <LINEITEMCOMM></LINEITEMCOMM> 
       <LINEITEMSTATUS></LINEITEMSTATUS> 
       <MATERIALDESCRIPTION>EVOLVU BLUED 84/84 Tray</MATERIALDESCRIPTION> 
       <ORDERQTY>168.0</ORDERQTY> 
       <SCHEDULEDSHIPDATE>2017-08-21</SCHEDULEDSHIPDATE> 
       <VENDORMATERIALNO>4091391972084</VENDORMATERIALNO> 
      </ITEM> 
      <ITEM> 
       <BROKERLINEITEMNO>11</BROKERLINEITEMNO> 
       <BROKERMATERIALNO>4091391972083</BROKERMATERIALNO> 
       <COMMITTEDINVPONO></COMMITTEDINVPONO> 
       <CONFIRMEDQTY>128.0</CONFIRMEDQTY> 
       <LINEITEMCOMM></LINEITEMCOMM> 
       <LINEITEMSTATUS></LINEITEMSTATUS> 
       <MATERIALDESCRIPTION>EVOLD 84/84 Tray</MATERIALDESCRIPTION> 
       <ORDERQTY>128.0</ORDERQTY> 
       <SCHEDULEDSHIPDATE>2017-08-21</SCHEDULEDSHIPDATE> 
       <VENDORMATERIALNO>4091391972084</VENDORMATERIALNO> 
      </ITEM> 
      <ITEM> 
       <BROKERLINEITEMNO>12</BROKERLINEITEMNO> 
       <BROKERMATERIALNO>4091391972085</BROKERMATERIALNO> 
       <COMMITTEDINVPONO></COMMITTEDINVPONO> 
       <CONFIRMEDQTY>198.0</CONFIRMEDQTY> 
       <LINEITEMCOMM></LINEITEMCOMM> 
       <LINEITEMSTATUS></LINEITEMSTATUS> 
       <MATERIALDESCRIPTION>EVOIND 84/84 Tray</MATERIALDESCRIPTION> 
       <ORDERQTY>198.0</ORDERQTY> 
       <SCHEDULEDSHIPDATE>2017-09-15</SCHEDULEDSHIPDATE> 
       <VENDORMATERIALNO>4091391972084</VENDORMATERIALNO> 
      </ITEM> 
      <ITEM> 
       <BROKERLINEITEMNO></BROKERLINEITEMNO> 
       <BROKERMATERIALNO></BROKERMATERIALNO> 
       <COMMITTEDINVPONO></COMMITTEDINVPONO> 
       <CONFIRMEDQTY></CONFIRMEDQTY> 
       <LINEITEMCOMM></LINEITEMCOMM> 
       <LINEITEMSTATUS></LINEITEMSTATUS> 
       <MATERIALDESCRIPTION></MATERIALDESCRIPTION> 
       <ORDERQTY></ORDERQTY> 
       <SCHEDULEDSHIPDATE></SCHEDULEDSHIPDATE> 
       <VENDORMATERIALNO></VENDORMATERIALNO> 
      </ITEM> 
      <ITEM> 
       <BROKERLINEITEMNO></BROKERLINEITEMNO> 
       <BROKERMATERIALNO></BROKERMATERIALNO> 
       <COMMITTEDINVPONO></COMMITTEDINVPONO> 
       <CONFIRMEDQTY></CONFIRMEDQTY> 
       <LINEITEMCOMM></LINEITEMCOMM> 
       <LINEITEMSTATUS></LINEITEMSTATUS> 
       <MATERIALDESCRIPTION></MATERIALDESCRIPTION> 
       <ORDERQTY></ORDERQTY> 
       <SCHEDULEDSHIPDATE></SCHEDULEDSHIPDATE> 
       <VENDORMATERIALNO></VENDORMATERIALNO> 
      </ITEM> 
      <ITEM> 
       <BROKERLINEITEMNO></BROKERLINEITEMNO> 
       <BROKERMATERIALNO></BROKERMATERIALNO> 
       <COMMITTEDINVPONO></COMMITTEDINVPONO> 
       <CONFIRMEDQTY></CONFIRMEDQTY> 
       <LINEITEMCOMM></LINEITEMCOMM> 
       <LINEITEMSTATUS></LINEITEMSTATUS> 
       <MATERIALDESCRIPTION></MATERIALDESCRIPTION> 
       <ORDERQTY></ORDERQTY> 
       <SCHEDULEDSHIPDATE></SCHEDULEDSHIPDATE> 
       <VENDORMATERIALNO></VENDORMATERIALNO> 
      </ITEM> 
      <ITEM> 
       <BROKERLINEITEMNO></BROKERLINEITEMNO> 
       <BROKERMATERIALNO></BROKERMATERIALNO> 
       <COMMITTEDINVPONO></COMMITTEDINVPONO> 
       <CONFIRMEDQTY></CONFIRMEDQTY> 
       <LINEITEMCOMM></LINEITEMCOMM> 
       <LINEITEMSTATUS></LINEITEMSTATUS> 
       <MATERIALDESCRIPTION></MATERIALDESCRIPTION> 
       <ORDERQTY></ORDERQTY> 
       <SCHEDULEDSHIPDATE></SCHEDULEDSHIPDATE> 
       <VENDORMATERIALNO></VENDORMATERIALNO> 
      </ITEM> 
      <ITEM> 
       <BROKERLINEITEMNO></BROKERLINEITEMNO> 
       <BROKERMATERIALNO></BROKERMATERIALNO> 
       <COMMITTEDINVPONO></COMMITTEDINVPONO> 
       <CONFIRMEDQTY></CONFIRMEDQTY> 
       <LINEITEMCOMM></LINEITEMCOMM> 
       <LINEITEMSTATUS></LINEITEMSTATUS> 
       <MATERIALDESCRIPTION></MATERIALDESCRIPTION> 
       <ORDERQTY></ORDERQTY> 
       <SCHEDULEDSHIPDATE></SCHEDULEDSHIPDATE> 
       <VENDORMATERIALNO></VENDORMATERIALNO> 
      </ITEM> 
      <ITEM> 
       <BROKERLINEITEMNO></BROKERLINEITEMNO> 
       <BROKERMATERIALNO></BROKERMATERIALNO> 
       <COMMITTEDINVPONO></COMMITTEDINVPONO> 
       <CONFIRMEDQTY></CONFIRMEDQTY> 
       <LINEITEMCOMM></LINEITEMCOMM> 
       <LINEITEMSTATUS></LINEITEMSTATUS> 
       <MATERIALDESCRIPTION></MATERIALDESCRIPTION> 
       <ORDERQTY></ORDERQTY> 
       <SCHEDULEDSHIPDATE></SCHEDULEDSHIPDATE> 
       <VENDORMATERIALNO></VENDORMATERIALNO> 
      </ITEM> 
      <ITEM> 
       <BROKERLINEITEMNO></BROKERLINEITEMNO> 
       <BROKERMATERIALNO></BROKERMATERIALNO> 
       <COMMITTEDINVPONO></COMMITTEDINVPONO> 
       <CONFIRMEDQTY></CONFIRMEDQTY> 
       <LINEITEMCOMM></LINEITEMCOMM> 
       <LINEITEMSTATUS></LINEITEMSTATUS> 
       <MATERIALDESCRIPTION></MATERIALDESCRIPTION> 
       <ORDERQTY></ORDERQTY> 
       <SCHEDULEDSHIPDATE></SCHEDULEDSHIPDATE> 
       <VENDORMATERIALNO></VENDORMATERIALNO> 
      </ITEM> 
     </ORDERDETAILS> 
    </BROKERACKNOWLEDGEMENT> 
</WBSRVGET5Result> 
+0

Comment vous implémentez le service Web? Utilisez-vous le serveur 'Integrated Web Services for i' ou autre chose? – jmarkmurphy

+0

Oui. Utilisation de services Web intégrés. Méthode reposante – Raju

Répondre

0

Si c'est un IAS - vous devez ajouter des noms supplémentaires sur les paramètres (INT) en tant que vous déposerez + « _length » Dans votre cas, il, de la somethink comme ceci:

dcl-ds ORDERDETAILS; 
    ITEM_LENGTH int(10); 
    ITEM likeds(XYZ) dim(9); 
end-ds; 

ITEM_LENGTH doit être avant la définition ITEM :)

vous ne voyez pas cette variable en réponse du service Web - mais vous voyez ce que ITEM_LENGTH élément sur la réponse :)