在groovy脚本CPI中使用isContextChange

2020-09-04 17:16发布

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

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


嗨,

我正在研究CPI中的消息映射功能,并且遇到了以下问题。

我创建了一个自定义函数来在上下文中连接字符串。 为此,我必须能够检查输入队列中的条目是否是上下文更改。 输出接口有一个isContextChange方法,但我觉得这不能正常工作。

即使这个简单的脚本:

def void removeContext(String []值,输出输出,MappingContext上下文){

值。每个{v->

如果(!output.isContextChange(v)){

output.addValue(v)

}

}

}

不起作用。 我希望上下文更改将被删除。 但是输出队列与输入队列完全相同。 好像无法识别上下文更改。

有人遇到过这个吗? 我的脚本错了吗?

感谢您的任何输入

此致

Jan

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

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


嗨,

我正在研究CPI中的消息映射功能,并且遇到了以下问题。

我创建了一个自定义函数来在上下文中连接字符串。 为此,我必须能够检查输入队列中的条目是否是上下文更改。 输出接口有一个isContextChange方法,但我觉得这不能正常工作。

即使这个简单的脚本:

def void removeContext(String []值,输出输出,MappingContext上下文){

值。每个{v->

如果(!output.isContextChange(v)){

output.addValue(v)

}

}

}

不起作用。 我希望上下文更改将被删除。 但是输出队列与输入队列完全相同。 好像无法识别上下文更改。

有人遇到过这个吗? 我的脚本错了吗?

感谢您的任何输入

此致

Jan

付费偷看设置
发送
3条回答
Doze时光
1楼-- · 2020-09-04 17:37

你好Jan,

对于在上下文中串联字符串,脚本只能包含串联逻辑,因为将为每个上下文调用脚本。

此脚本执行您期望的操作:

 def void concatenateStrings(String []值,输出输出,MappingContext上下文){
     output.addValue(values.join(''))
 }
 

功能消息队列:

如果这不是您所期望的,请用示例输入和预期输出来更新问题吗? 谢谢。

希望这会有所帮助,

Bala

黑丝骑士
2楼-- · 2020-09-04 17:35

如果要考虑所有上下文中的所有值进行串联,则可以在调用上述函数之前使用removeContexts函数。

映射:

功能消息队列:

希望这会有所帮助,

Bala

lukcy2020
3楼-- · 2020-09-04 17:31

有一个用于删除上下文的标准UDF

SCPI不能像XI/PI一样工作。 PI具有与值,上下文和队列相关的三种模式。

不幸的是,无法处理队列的所有值,包括上下文更改不可用。

一种替代方法是用分隔符将所有值连接在一起。 最后,输入CC之类的值,删除上下文,它们再次构建队列

一周热门 更多>