无法在主Iflow中的SAP CPI中获取ExchangeId,messageId

2020-08-20 13:56发布

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

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


专家们,

我正在SAP CPI将数据插入SFSF的情况下工作。 如果响应失败,CPI将使用以下格式将错误响应发送回发件人。 但是我无法在主要集成流程中获取MessageId,Exchnage id和IFLOW名称。

但是在Exception子流程中,它工作正常。

 def ExchangeID = $ {exchangeId};
 def MessageID = $ {id};
 def Timestamp = $ {date:now:dd-MM-yyyy HH:mm z};
 def IFlowName = $ {camelId};
 

我在代码中使用上面的表达式来获取值。

您能帮助我们如何获取这些值吗?

致谢

苏维克

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

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


专家们,

我正在SAP CPI将数据插入SFSF的情况下工作。 如果响应失败,CPI将使用以下格式将错误响应发送回发件人。 但是我无法在主要集成流程中获取MessageId,Exchnage id和IFLOW名称。

但是在Exception子流程中,它工作正常。

 def ExchangeID = $ {exchangeId};
 def MessageID = $ {id};
 def Timestamp = $ {date:now:dd-MM-yyyy HH:mm z};
 def IFlowName = $ {camelId};
 

我在代码中使用上面的表达式来获取值。

您能帮助我们如何获取这些值吗?

致谢

苏维克

付费偷看设置
发送
6条回答
大简至美
1楼 · 2020-08-20 14:42.采纳回答

您好Souvik,

您可以放置​​内容修饰符并设置Expression类型的属性,并将以上全部用作值。

对于消息ID,请使用值$ {header.SAP_MessageProcessingLogID}

致谢,

Sriprasad Shivaram Bhat

亦是此间程序员
2楼-- · 2020-08-20 14:24

感谢Sri的快速响应。

此致

Souvik

nice_wp
3楼-- · 2020-08-20 14:38

嗨,Souvik

您正在以某种方式组合Groovy(def内容)和Simple Expression Language($ {...}东西)

重用简单表达式的最简单方法是添加内容修饰符并创建四个属性(类型为"表达式")来存储表达式的值。 然后,使用message.getProperty('property-name-here')在Groovy脚本中访问这些属性。

问候,

Morten

粗暴的香蕉
4楼-- · 2020-08-20 14:41

谢谢 莫滕为澄清。 现在解决了。

此致

Souvik

nice_wp
5楼-- · 2020-08-20 14:37

另一个选项,如果您想在Groovy脚本中访问Simple Expression结果而不预先添加Content Modifier,将是像下面这样解释Groovy中的Simple Expressions:

导入com.sap.gateway.ip.core.customdev.util.Message
 导入org.apache.camel.builder.SimpleBuilder

 def消息processData(消息消息){
         def simple = SimpleBuilder.simple('$ {exchangeId}')
 def ExchangeID = simple.evaluate(message.exchange,String)
//使用交换ID做任何您想做的事
 返回讯息
 }
 

如果您想了解更多关于它的信息,请从英语Swee https://blogs.sap .com/2018/04/05/using-camels-simple-in-cpi-groovy-scripts/

歪着头看世界
6楼-- · 2020-08-20 14:25

感谢Raffael的替代选择。

此致

苏维克

一周热门 更多>