SAP CPI:如何从CSV中删除重复的值

2020-08-25 20:30发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我们要求数据通过两个...

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

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


专家们,

我们要求数据通过两个不同的查询进入SF,我已将这两个信息收集到CSV文件中

但是它具有一些具有相同数据的重复值,我需要忽略一个以避免重复值。

请任何人分享我如何使用常规方法或其他方法实现此CPI。

此致

阿卜杜勒·拉希姆

6条回答
CPLASF-自律
2020-08-25 20:55

嗨,Abdul

假设您拥有CSV有效负载,以下Groovy脚本将删除重复的行:

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

 def消息processData(消息消息){
    //获取有效负载中的行列表。
     定义行= message.getBody(String).readLines()
    //从列表中删除重复项,然后转换回
    //一个字符串,每行之间用\ n分隔。
     def newPayload = lines.unique()。join(" \ n")
    //设置新的有效负载,我们完成了。
     message.setBody(newPayload)
     返回讯息
 } 

一些注意事项。

大部分工作是通过Groovy列表的unique()方法完成的。 如果行数较少,则处理时间并不重要。 如果您有很多行,那么确实很重要。 在这种情况下,您需要测量执行时间并确定执行时间是否足够。

如果我在寻找正确的源代码,则unique()方法似乎具有O(n ^ 2) 复杂。 即 如果输入大小增加一倍,执行时间将增加四倍。 删除重复项可以在线性时间内完成,即,输入结果翻倍,执行时间翻倍。 但是-再次-如果输入很小,可能没关系。

此外,请注意输出中的行如何用\ n分隔。 如果您还需要其他东西,请进行相应的调整。

问候

Morten

一周热门 更多>