SAP CPI Groovy脚本可根据传入的ECC有效负载来复制和创建字段

2020-08-23 06:05发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我需要使用以下方法更改E...

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

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


嗨,

我需要使用以下方法更改ECC(SAP Business Suite中的复制注册产品)的传入负载:

1。检查并确认以下语言的设备描述是否存在:DE,EN,IT,ES,FR,CN,KR,JP。

2。基于#1,创建该列表中所有缺少的语言的记录。

3。将EN描述复制到所有其他语言。

我尝试使用可用的映射功能,但无法实现。

为了在8个E101COD_S_EQUI_DESCR和所有SPRAS_ISO =='EN'的同一个EQKTX上创建一个新的有效负载,在映射之前,我可能需要一个普通的脚本。

任何人都可以帮忙吗?

谢谢

有效载荷示例(三种语言):

COD_S_EQUI_DESCR

D

Exactive Plus EMR

X

EXACTIVE PLUS EMR

DE

COD_S_EQUI_DESCR

E

Exactive Plus EMR.EN

EXACTIVE PLUS EMR.EN

EN

COD_S_EQUI_DESCR

S

测试应覆盖ES

应该覆盖ES

ES

4条回答
悻福寶寶
2020-08-23 06:27

Hello Raffael,

谢谢您的帮助。

由于这是来自ERP的消息要映射,因此我对脚本进行了一些更改(请参见下文),以使其正常运行。 但是,我仍然有一个问题(请参阅随附的映射模拟):创建了新的节点,但是它们并没有取代原始节点,它们位于下方。 结果,映射仍仅采用原始段。

有什么想法可以解决这个问题吗?

导入com.sap.gateway.ip.core.customdev.util.Message;
 导入java.util.HashMap;
 导入groovy.xml.XmlUtil;
 导入groovy.xml.StreamingMarkupBuilder;
 导入groovy.xml。*;


 def消息processData(消息消息){
 def主体= message.getBody();
 def lngList = ['DE','EN','IT','ES','FR','CN','KR','JP']
 def root = new XmlSlurper()。parseText(body)
 root.E101COD_S_EQUI_DESCR。每个{节点->
//从"所需"列表中删除现有语言
 lngList.remove(node.SPRAS_ISO.text())
 }


//为每种需要的语言添加节点
 lngList.each {lng->
 def enNode = root。'**'。find {节点-> node.name()=='E101COD_S_EQUI_DESCR'&& node.SPRAS_ISO.text()=='EN'}
 def newNode =新的XmlSlurper()。parseText(groovy.xml.XmlUtil.serialize(enNode))
 newNode.SPRAS_ISO = lng
 root.appendNode(newNode)
 }
//在XML文件上坚持更改
 xml = groovy.xml.XmlUtil.serialize(root);
 message.setBody(xml);
 返回消息;
//调试输出
//println(xml)
 }
 

一周热门 更多>