如何Trim RPGLE服务程序调用时IWS生成的SOAP响应

How to Trim the SOAP response generated by IWS during RPGLE service program call

如何处理大型复杂的响应数据结构,对于作为 Web 服务公开的服务程序 IBM Integrated Web Services for IBM i (IWS)

问题的详细说明:

我公开了一个像 GetRiskItemList() 这样的过程,它的响应数据结构像 "RiskItemListResponse"(参见下面的定义)。

嵌套数组 "HomeContentsList" 的平均使用量为 10 个元素,因此在正常操作期间有 190 个元素未使用。因此在 SOAP XML 结果中产生了显着的膨胀。

我的要求是满足最多 200 件商品。

对于简单数组,IWS 允许将变量指定为实际使用的数字或元素的计数器。 IWS 使用哪个为这些元素生成 XML 标签。

请求

您是否知道 "Trim" XML 排除嵌套数组中未使用的元素的方法?

RPGLE 代码摘录:

 d GetRiskItemList...
 d                 pr
 d i_request                           likeds(RiskItemListRequest) const
 d o_response                          likeds(RiskItemListResponse)

 ?*--------------------------------------------------
 ?* Web Service Response Data Structure
 ?*--------------------------------------------------
 d RiskItemListResponse...
 d                 ds                  qualified template
 d BuildContentsList...
 d                                     likeds(BuildingContentsEntity)
 d                                     dim(200) 
 d BuildingList...
 d                                     likeds(BuildingEntity)
 d                                     dim(10) 
 d RiskHeading...
 d                               50a
 d BenefitsHeading...
 d                               50a

IBM 添加了 "Detect Length Fields" 选项。

https://www.ibm.com/developerworks/ibmi/library/i-integrated-web-services-server/