如何调试数据集响应

问题描述 投票:0回答:2

Hello Progress4GL开发人员,

我正在尝试使用Magento SOAP API,并将数据集作为输出。

这是WSDL Analayser中的示例过程:enter image description here

我希望我的XML响应看起来像这样:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:Magento">
   <SOAP-ENV:Body>
      <ns1:salesOrderListResponseParam>
         <result>
            <complexObjectArray>
               <increment_id>600000018</increment_id>
               <store_id>6</store_id>
            </complexObjectArray>
            <complextObjectArray>
               <increment_id>600000019</increment_id>
               <store_id>7</store_id>
            </complexObjectArray>
          </result>
      </ns1:salesOrderListResponseParam>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

我现在拥有的以下代码是我期望在resultTable临时表中输出的内容(但目前未返回任何内容。)>

define variable hs as handle no-undo.
define variable hp as handle no-undo.

DEFINE VARIABLE cUsername AS CHARACTER INIT "USERNAME".
DEFINE VARIABLE cPassword AS CHARACTER INIT "PASSWORDAPIKEY".
DEFINE VARIABLE oSession  AS CHARACTER NO-UNDO. 
DEFINE VARIABLE iRequest AS LONGCHAR NO-UNDO.


DEFINE TEMP-TABLE complexObjectArray NO-UNDO
    NAMESPACE-URI "" 
    FIELD key AS CHARACTER 
    FIELD value1 AS CHARACTER 
        XML-NODE-NAME "value" 
    FIELD filter_id AS RECID 
        XML-NODE-TYPE "HIDDEN".

CREATE complexObjectArray.
assign
complexObjectArray.key       = "status"
complexObjectArray.value1    = "pending".

DEFINE DATASET filter NAMESPACE-URI "" 
    FOR complexObjectArray.

DEFINE TEMP-TABLE resultTable NO-UNDO
    NAMESPACE-URI "complexObjectArray" 
    FIELD increment_id AS CHARACTER.    

DEFINE DATASET resultData NAMESPACE-URI "salesOrderListResponseParam" 
    FOR resultTable.

create server hs.
hs:connect( "-WSDL WSDLADDRESSHERE" ). 

run PortType set hp on server hs.

run login in hp ( input cUsername, input cPassword, output oSession ).

message oSession . PAUSE 100.

 run salesOrderList in hp ( input oSession, input dataset filter, output dataset resultData ).

for each resultTable:
    disp resultTable with 2 col.
end.



delete procedure hp.
hs:disconnect().
delete object hs.

没有错误,但是无法在临时表中显示响应。提前非常感谢!

您好,Progress4GL开发人员,我正在尝试使用Magento SOAP API,并将数据集作为输出处理。这是来自WSDL分析器的示例过程:我期望我的XML ...

soap dataset openedge progress-4gl
2个回答
0
投票

首先,您应尝试创建与预期输出完全匹配的数据集。我会做这样的事情。


0
投票

感谢@Jensd的回答。使用write-xml语句确实有助于确定数据集的结构。

© www.soinside.com 2019 - 2024. All rights reserved.