如何在RPGLE服务程序调用期间修剪IWS生成的SOAP响应

时间:2015-05-11 12:04:35

标签: web-services soap ibm-midrange rpgle

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

问题的详细说明:

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

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

我的要求是最多可以容纳200件物品。

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

请求

你知道如何修剪"修剪" 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

1 个答案:

答案 0 :(得分:0)

IBM添加了"检测长度字段"选项。

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