CPI Groovy脚本中的messageLogFactory与MessageLogFactory

2020-08-26 04:36发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我试图了解有什么区别 Mes...

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

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


我试图了解

有什么区别
 MessageLogFactory和messageLogFactory 

我尝试使用下面的类来获取消息日志的实例,但得到异常,如错误详细信息所示。

 com.sap.it.api.msglog.MessageLogFactory 
错误详细信息java.lang.NoSuchMethodException:无方法签名:静态com.sap.it.api.msglog.MessageLogFactory.getMessageLog()适用于 参数类型:(com.sap.gateway.ip.core.customdev.processor.MessageImpl)值:[com.sap.gateway.ip.core.customdev.processor.MessageImpl@172e1254]
Interface Java doc谈到了MessageLogFactory接口的输入参数。

上下文对象可以是Camel交换,CXF交换或 com.sap.it.api.msg.ExchangePropertyProvider

这段代码很好用

 def logVariable(消息消息,字符串名称,字符串值){
boolean enableLogging = Boolean.parseBoolean(message.getProperty(" enable_logging")as String)
if(enableLogging){
def messageLog = messageLogFactory.getMessageLog(message)
messageLog.setStringProperty(name,value)
}
}

这段代码给我一个错误

 def logVariable1(消息消息){
def messageLog = MessageLogFactory.getMessageLog(message)
messageLog.setStringProperty(" Test_Log","测试日志")
}
付费偷看设置
发送
2条回答
hengyuye
1楼 · 2020-08-26 05:35.采纳回答

Hi Srini

MessageLogFactory(大写M)是com.sap.it.api.msglog包中接口的名称。 另一方面,messageLogFactory(小写M)是运行时可用于脚本的变量的名称。 该变量引用一个类的实例,该类实现了MessageLogFactory(再次为大写M)接口。

如果您对哪个类感到好奇,请运行以下脚本:

 import com  .sap.gateway.ip.core.customdev.util.Message

 def消息processData(消息消息){
     message.setBody(messageLogFactory.getClass()。getName())
     返回讯息
 } 

现在,它返回com.sap.it.op.agent.mpl.factory.impl.MessageLogFactoryImpl。 但是,该课程并不重要。 重要的是它实现了接口,因此允许您创建MessageLog实例。

致谢

Morten

SAP浪
2楼-- · 2020-08-26 05:35

谢谢,Morten。

现在可以帮助我更好地理解它。 我从未将其视为接口的实现类。 :-)


关于

Srini

一周热门 更多>