CPI Groovy-平面文件排序仍然存在问题

2020-09-18 06:05发布

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

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


你好

我的Flatfile排序仍然有问题。 我尝试了其他方法但无济于事,所以我回到了原来的脚本。 但是说实话,我不知道为什么这行不通。

我的输入看起来像这样

所有行都以\ r \ n终止,包括最后一行

这个想法很简单,读取正文,使用'\ r \ n'上的拆分创建一个数组,对子字符串上的结果数组进行排序,然后将排序后的数组转换回字符串。

但是由于某种原因,拆分无法正常进行,如果我使用空白的''字符进行拆分,它还会不断出现错误,使我认为数据类型可能不正确。

代码是这样的,我尽可能地拆分命令以使其简单,但实际上body.split已经出错:

导入com.sap.gateway.ip.core.customdev.util.Message;
 导入java.util.HashMap;
 导入groovy.xml。*;
 导入groovy.json。*;
 导入groovy.util。*;
 导入groovy.time。*;
 导入org.codehaus。*;

 def消息processData(消息消息){
    //身体
        def主体= message.getBody();
        def messageLog = messageLogFactory.getMessageLog(message);
        testArray = body.split('\ r \ n')
        def sortArray = testArray.sort {it.substring(2,11)}
        def stringArray = sortArray.join('\ r \ n')
      
        message.setBody(stringArray);
       
        返回消息;
 } 

我得到的错误是:

java.lang.NoSuchMethodException:方法的无签名:[B.split()适用于参数类型:(java.lang.String)值:[]可能的解决方案:split(groovy.lang.Closure),等待 (),toList(),wait(long),print(java.lang.Object),sprintf(java.lang.String,java.lang.Object)

请注意[和]之间的空白行。 如果我尝试拆分其他内容,则会收到相同的错误,但没有空格。

我不知道[B. 来自[B.split。 我不明白为什么会有这个错误。 拆分功能通常效果很好。

我只能想象它与输入数据有关。 记录的长度各不相同,最长可达6k字节。

有什么想法吗? 我真的很想尽全力。


谢谢

汤姆

(10.1 kB)

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

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


你好

我的Flatfile排序仍然有问题。 我尝试了其他方法但无济于事,所以我回到了原来的脚本。 但是说实话,我不知道为什么这行不通。

我的输入看起来像这样

所有行都以\ r \ n终止,包括最后一行

这个想法很简单,读取正文,使用'\ r \ n'上的拆分创建一个数组,对子字符串上的结果数组进行排序,然后将排序后的数组转换回字符串。

但是由于某种原因,拆分无法正常进行,如果我使用空白的''字符进行拆分,它还会不断出现错误,使我认为数据类型可能不正确。

代码是这样的,我尽可能地拆分命令以使其简单,但实际上body.split已经出错:

导入com.sap.gateway.ip.core.customdev.util.Message;
 导入java.util.HashMap;
 导入groovy.xml。*;
 导入groovy.json。*;
 导入groovy.util。*;
 导入groovy.time。*;
 导入org.codehaus。*;

 def消息processData(消息消息){
    //身体
        def主体= message.getBody();
        def messageLog = messageLogFactory.getMessageLog(message);
        testArray = body.split('\ r \ n')
        def sortArray = testArray.sort {it.substring(2,11)}
        def stringArray = sortArray.join('\ r \ n')
      
        message.setBody(stringArray);
       
        返回消息;
 } 

我得到的错误是:

java.lang.NoSuchMethodException:方法的无签名:[B.split()适用于参数类型:(java.lang.String)值:[]可能的解决方案:split(groovy.lang.Closure),等待 (),toList(),wait(long),print(java.lang.Object),sprintf(java.lang.String,java.lang.Object)

请注意[和]之间的空白行。 如果我尝试拆分其他内容,则会收到相同的错误,但没有空格。

我不知道[B. 来自[B.split。 我不明白为什么会有这个错误。 拆分功能通常效果很好。

我只能想象它与输入数据有关。 记录的长度各不相同,最长可达6k字节。

有什么想法吗? 我真的很想尽全力。


谢谢

汤姆

(10.1 kB)
付费偷看设置
发送
3条回答
微wx笑
1楼-- · 2020-09-18 06:49

汤姆你好,

我已经尝试了您的方案,并且它没有任何问题(从Content Modifier和SFTP通道通过)。您的文件似乎有问题。如果您可以屏蔽与客户相关的数据并共享文件,我可以运行并检查 可能是什么原因引起的。

此致

Sriprasad Shivaram Bhat

clasier
2楼-- · 2020-09-18 07:01

你好汤姆,

您的意思。我已经通过Content Modifier和SFTP服务器进行了测试。

此致

Sriprasad Shivaram Bhat

奄奄一息的小鱼
3楼-- · 2020-09-18 06:49

你好,Sirprasad,

非常感谢您的帮助!

我已经屏蔽了内容并将其附加。 messagelog-masked-content.txt

crlf仍然应该存在

亲切的问候

汤姆

一周热门 更多>