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

2020-08-25 20:30发布

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

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


专家们,

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

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

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

此致

阿卜杜勒·拉希姆

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

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


专家们,

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

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

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

此致

阿卜杜勒·拉希姆

付费偷看设置
发送
6条回答
太Q了
1楼 · 2020-08-25 20:53.采纳回答

您好Abdul,

在XSLT下面会做需要的事情。

 
 
 
 
 
 
 
 
 <标题>
 
 
 
 
 
 
 

问候,

Sriprasad Shivaram Bhat

悠然的二货
2楼-- · 2020-08-25 21:12

嗨,Sirprasad,

非常感谢。它现在工作正常。

辛苦了。

此致

Abdul Raheem。

CPLASF-自律
3楼-- · 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

空代码
4楼-- · 2020-08-25 20:59

您好,阿卜杜勒·拉希姆(Abdul Raheem)

如果将XML转换为CSV,则肯定是相同的记录会产生相同的行,然后可以使用上述脚本将其删除。

关于

Morten

黑丝骑士
5楼-- · 2020-08-25 21:15

Hello Abdul,

请您在合并数据(输入数据)和预期输出后共享结构 这样我们就可以提供解决方案。

问候,

Sriprasad Shivaram Bhat

Violet凡
6楼-- · 2020-08-25 21:18

嗨,Sirprasad,

我们在下面有结构,我需要删除重复的记录Emp_id 1000数据,我需要在目标端复制一次。

1000

A

4

Z

4

A

...........

1000

A

4

Z

4

A

...........

11112

J

3

H

2

T

...........

等待您的回复。

此致

阿卜杜勒·拉希姆(Abdul Raheem)

一周热门 更多>