云中的CPI映射以实现客户集成

2020-08-14 17:36发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嘿SAP专家, 我对iFlow...

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

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


嘿SAP专家,

我对iFlow的CPI映射有疑问"从SAP Business Suite复制业务合作伙伴"。

如果源结构中的字段" IndustrialSectorCode"是初始字段,则需要禁止目标结构中的节点" IndustrySector" +子节点。

如何在IndustrySector的映射中访问" IndustrialSectorCode"字段?

我已经尝试了节点函数" removeContexts" +" createif",但这会在XML文件中创建一个奇怪的字符串,并且完全没有抑制作用:

映射CPI:

有什么想法吗?

致谢。

西蒙。

(42.3 kB)
4条回答
Tong__Ming
2020-08-14 18:07
 import com.sap.gateway.ip.core.customdev.util.Message;
 导入java.util.HashMap;
 导入groovy.util.XmlSlurper;
 导入groovy.xml.XmlUtil;

 def消息processData(消息消息){

     def valid_values = ['EXAMPLE0001','EXAMPLE0002'];
    
     def body = message.getBody(java.lang.String);
     def messageLog = messageLogFactory.getMessageLog(message);
    
     定义IDOC = new XmlSlurper()。parseText(body);
     def E1KNA1M = IDOC.E1KNA1M;

 E1KNA1M.E1KNVVM.each {it->
 messageLog.setStringProperty(" BZIRK-1",it.BZIRK.text());

 if(!valid_values.contains(it.BZIRK))
 {
 it.BZIRK ="";
 }

 messageLog.setStringProperty(" BZIRK-2",it.BZIRK.text());
 }

     def distrZone = E1KNA1M.E1KNVVM.findAll {distrZone.contains(it.BZIRK)};
    
    
     def cleanBody = XmlUtil.serialize(IDOC).replaceAll(" \\ <\\?xml(。+?)\\?\\>","").trim();
     messageLog.setStringProperty(" Body",cleanBody);

     message.setBody(cleanBody);

     返回消息;
 }
 

一周热门 更多>