消息映射-仅读取集合中的第一项

2020-09-04 14:12发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

一个菜鸟问题。

我有一个输入XML,其中有关于项目的集合,我想从该集合中提取特定值并将其推送到输出。 我看到了一些示例,但无法从多个项目中提取。

这就是我打算做的。 提取为

  • 为partnerRoleCode = WE提取并将其映射到o/p
  • 为partnerRoleCode = AG提取并将其映射到o/p

请参阅下面的i/p XML。

 
          0000490025 
          -1 
          11111 
          1 
          WE 
          -1 | 0000490025 
       
       
          0000490025 
          -1 
          44444 
         
          AG 
          -1 | 0000490025 
       
      

我面临的问题是 在groovy脚本中,似乎只有第一个被读取。

 def void extractShipToSoldTo(String [] is,String [] ps,输出shipToNumber,输出soldToNumber,MappingContext上下文){
        //字符串值1 = context.getHeader(is [0]);
        //字符串值2 = context.getProperty(ps [0]);
       /* String s ="";
         for(int i = 0; i 
 

当我使用上面的i/p XML进行测试时,这只会产生soldToNumber或shipToNumber。 我尝试打印这些值,但是没有运气。

我在做什么错了?

我认为消息映射应该能够处理这种简单的情况。

如何使用"映射"解决此问题。

(238.4 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

一个菜鸟问题。

我有一个输入XML,其中有关于项目的集合,我想从该集合中提取特定值并将其推送到输出。 我看到了一些示例,但无法从多个项目中提取。

这就是我打算做的。 提取为

  • 为partnerRoleCode = WE提取并将其映射到o/p
  • 为partnerRoleCode = AG提取并将其映射到o/p

请参阅下面的i/p XML。

 
          0000490025 
          -1 
          11111 
          1 
          WE 
          -1 | 0000490025 
       
       
          0000490025 
          -1 
          44444 
         
          AG 
          -1 | 0000490025 
       
      

我面临的问题是 在groovy脚本中,似乎只有第一个被读取。

 def void extractShipToSoldTo(String [] is,String [] ps,输出shipToNumber,输出soldToNumber,MappingContext上下文){
        //字符串值1 = context.getHeader(is [0]);
        //字符串值2 = context.getProperty(ps [0]);
       /* String s ="";
         for(int i = 0; i 
 

当我使用上面的i/p XML进行测试时,这只会产生soldToNumber或shipToNumber。 我尝试打印这些值,但是没有运气。

我在做什么错了?

我认为消息映射应该能够处理这种简单的情况。

如何使用"映射"解决此问题。

(238.4 kB)
付费偷看设置
发送
1条回答
N-Moskvin
1楼-- · 2020-09-04 14:44

Saket,

partnerId和partnerRoleCode的上下文必须是SAPCpiOutboundPartnerRole的外部节点,以便函数extractShipToSoldTo将一起接收所有伙伴ID和伙伴角色代码。 然后,extractShipToSoldTo函数可以遍历合作伙伴角色代码并根据需要映射它们。

 def void extractShipToSoldTo(String [] partnerIds,String [] partnerRoleCodes,输出shipToNumber,输出soldToNumber,MappingContext上下文){
 partnerRoleCodes.eachWithIndex {partnerRoleCode,索引->
 开关(partnerRoleCode){
 案例" WE":
 shipToNumber.addValue(" SHIPTO $ {partnerIds [index]}");
 打破
 案例" AG":
 soldToNumber.addValue(" SOLDTO $ {partnerIds [index]}");
 打破
 }
 }
 }
 

希望这会有所帮助,

巴拉

一周热门 更多>