使用SAP CPI中的常规将固定文件长度转换为XML

2020-08-27 08:15发布

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

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


您好,CPI专家

我们有一个需要将平面文件(固定文件长度)转换为XML的要求。 我看到很少的博客可以通过将标头添加到平面文件然后拆分来实现此目的。 但这使iflow有点复杂。

执行Groovy脚本并实现该方案会更好。 能否请您分享常用的语法/代码来执行此操作。

示例文件:字段长度8,4,24,15,1,40,4,15

sample.txt

sample.txt (336乙)

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

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


您好,CPI专家

我们有一个需要将平面文件(固定文件长度)转换为XML的要求。 我看到很少的博客可以通过将标头添加到平面文件然后拆分来实现此目的。 但这使iflow有点复杂。

执行Groovy脚本并实现该方案会更好。 能否请您分享常用的语法/代码来执行此操作。

示例文件:字段长度8,4,24,15,1,40,4,15

sample.txt

sample.txt (336乙)
付费偷看设置
发送
7条回答
暮风yp
1楼-- · 2020-08-27 08:40

嘿玛尼·雷迪,

也许您可以使用以下代码,我有点懒于为所有代码构建代码,所以我将其保持了简单性

导入java.io.File
 导入groovy.xml.MarkupBuilder
 class readLineByLine {
 静态main(args){

 def varStringWriter = new StringWriter();
 def varXMLBuilder =新的MarkupBuilder(varStringWriter);

 字符串lineItems =" 20171118AAAB0009C707000001111 +1234567.11 OSuser-ABC Primary 00 +7654321.22" +'\ n'+
 '20161118AAAB0009C707000001111 +1234567.11)用户-ABC主00 +7654321.22'+'\ n'+
 " 20151118AAAB0009C707000001111 +1234567.11 OSuser-ABC Primary 00 +7654321.22"
 字符串newItem;
 lineItems.eachLine {

 line-> newItem = line;
 字符串newItem1 = newItem.substring(0,29);
 字符串newItem2 = newItem.substring(30,37);
 字符串newItem3 = newItem.substring(37,48);

 varXMLBuilder.RECORD {
 node1(newItem1);
 node2(newItem2);
 node3(newItem3);
 }
 }
 def xml = varStringWriter.toString();
 xml =" " + xml +" ";

 println xml;
 }
 } 

致谢

Akash

一周热门 更多>