在SAP CPI中更改为第一行后读取平面文件的第一行并返回整个文件

2020-08-22 05:26发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家您好, 问题陈述。 C...

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

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


专家您好,

问题陈述。

CPI接收平面文件(制表符分隔),该文件包含列名和列名的数据记录。 收到平面文件后,我想读取和更改第一行中的列名[space('')替换为下划线(_)],而不是读取整个文件。 更改列名后,请返回整个文件,其中包含列名的更改。

示例输入文件:

否<标签> 员工编号 <标签>客户<标签> 案例编号

1 12345 ABC 2345

2 3231 34532

注意:这些文件是15 MB-50MB之间的大文件。

所需的输出:

否<标签> 雇员编号 <标签>客户<标签> 案件编号

1 12345 ABC 2345

2 3231 34532

我当前正在使用的Groovy脚本。 该脚本仅将输出作为列名提供,而不提供包括数据记录在内的整个平面文件。

*********************************

导入com.sap.gateway.ip.core.customdev.util.Message;

import java.util.HashMap;

def消息processData(消息消息)

{def reader = message.getBody(java.io.Reader)

def数组= []

reader.find {行->行== 1

字符串newline = line.replaceAll('','_')

array.add(newline)

}

def messageLog = messageLogFactory.getMessageLog(message); messageLog.addAttachmentAsString(" CSV_file",array.toListString()," text/plain");

message.setBody(array.toListString());

返回消息}

****************************************

请提供解决方案,以返回整个平面文件以及增强的列名作为输出。

此致

Hemant

2条回答
大简至美
2020-08-22 06:11

您好,Hemant,

是的,这也会产生一些影响。 与在计算机上运行的所有内容一样:更多的资源=(大多数情况下)更高的处理速度。 因此,如果运行生产租户,则过程可能会加快。

一周热门 更多>