peoplecode中的LoadXMLString函数未按预期工作

时间:2014-02-19 17:10:06

标签: peoplesoft

我正在使用外部服务,该服务返回的XML与从peoplesoft中的服务操作生成的XML完全相同。因此,我使用了loadXMLStrin函数,如下所述。但是,只有一个字段被复制到行集。我不知道什么是错的。

这是代码。

&msgAddrResp = CreateMessage(Operation.FG_ADDR_RESP);
  &msgAddrResp.LoadXMLString(&sXML);

  &rsFgAddrStndRespWr = &msgAddrResp.GetRowset();

这是XML

<?xml version="1.0"?>
<FG_ADDR_RESP2>
<FieldTypes>
<FG_ADDR_RESP_WR class="R">
<cmid type="NUMBER"/>
<AddressLine1 type="CHAR"/>
<City type="CHAR"/>
<State type="CHAR"/>
<PostalCode type="CHAR"/>
<TimeZone type="CHAR"/>
<InCityLimit type="CHAR"/>
</FG_ADDR_RESP_WR>
<PSCAMA class="R">
<LANGUAGE_CD type="CHAR"/>
<AUDIT_ACTN type="CHAR"/>
<BASE_LANGUAGE_CD type="CHAR"/>
<MSG_SEQ_FLG type="CHAR"/>
<PROCESS_INSTANCE type="NUMBER"/>
<PUBLISH_RULE_ID type="CHAR"/>
<MSGNODENAME type="CHAR"/>
</PSCAMA>
</FieldTypes>
<MsgData>
<Transaction>
<FG_ADDR_RESP_WR class="R">
<cmid IsChanged="Y">0</cmid>
<AddressLine1 IsChanged="Y">xxxxx<AddressLine1/>
<City IsChanged="Y">xxxxxxxxx<City/>
<State IsChanged="Y">xx<State/>
<PostalCode IsChanged="Y">xxxxxxx<PostalCode/>
<TimeZone IsChanged="Y">xxx<TimeZone/>
<InCityLimit IsChanged="Y">x<InCityLimit/>
</FG_ADDR_RESP_WR>
<PSCAMA class="R">
<LANGUAGE_CD>ENG<LANGUAGE_CD/>
<AUDIT_ACTN><AUDIT_ACTN/>
<BASE_LANGUAGE_CD>ENG<BASE_LANGUAGE_CD/>
<MSG_SEQ_FLG><MSG_SEQ_FLG/>
<PROCESS_INSTANCE>0</PROCESS_INSTANCE/>
<PUBLISH_RULE_ID><PUBLISH_RULE_ID/>
<MSGNODENAME><MSGNODENAME/>
</PSCAMA>
</Transaction>
</MsgData>
</FG_ADDR_RESP2>

1 个答案:

答案 0 :(得分:0)

问题在于XML。结构不合理。 我现在改变了结构和工作。

谢谢。

相关问题