Hello Progress4GL开发人员,
我正在尝试使用Magento SOAP API,并将数据集作为输出。
我希望我的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 ...
首先,您应尝试创建与预期输出完全匹配的数据集。我会做这样的事情。
感谢@Jensd的回答。使用write-xml语句确实有助于确定数据集的结构。