您的位置:首页 > 游戏 > 游戏 > 最近新闻热点事件2024_建筑公司图片_关键词优化软件哪家好_百度云盘网页登录入口

最近新闻热点事件2024_建筑公司图片_关键词优化软件哪家好_百度云盘网页登录入口

2024/9/25 2:37:55 来源:https://blog.csdn.net/Cara_EDI_Consultant/article/details/142379343  浏览:    关键词:最近新闻热点事件2024_建筑公司图片_关键词优化软件哪家好_百度云盘网页登录入口
最近新闻热点事件2024_建筑公司图片_关键词优化软件哪家好_百度云盘网页登录入口

Flat File端口可以实现平面文件和XML文件的互相转换,本文主要介绍在知行之桥EDI系统8971及更高版本中,Flat File端口如何支持类似EDI嵌套结构的转换。

Flatfile端口如何自定义嵌套结构

下载示例工作流以及示例文件

打开知行之桥EDI系统,创建一个命名为Flatfile的工作区,将FlatFile.arcflow拖拽至空白区域即可实现导入。可以看到这个工作流中有两个Flat File测试端口,分明被命名为:Position_S_O_P以及Character_S_O_P。

Flat-File1.png

扩展阅读:知行之桥EDI系统功能介绍——FlatFile 端口介绍

Character_S_O_P 这个端口将为大家演示平文件按照分隔符切分字段的情况
Position_S_O_P 将为大家演示平文件按照长度切分字段的情况

此外在示例文件中,有两个文件:Character_S_O_P.txt是Character_S_O_P 端口的测试文件;Position_S_O_P.txt是 Position_S_O_P 端口的测试文件。

首先以按照分隔符切分字段的情况为例,在Character_S_O_P端口的输入选项卡下上传文件:Character_S_O_P.txt,由于勾选了自动发送,因此可以直接在输出选项卡下查看FlatFile端口的转换效果。点击文件名即可预览。

Flat-File2.png

源文件:

S,0,0
O,1,0
P,2,1
P,3,1
O,4,0
O,5,0

经过 FlatFile端口转换后的文件:

<Items><LoopS type="loop"><S><Id>0</Id><Pid>0</Pid></S><LoopO type="loop"><O><Id>1</Id><Pid>0</Pid></O><LoopP type="loop"><P><Id>2</Id><Pid>1</Pid></P></LoopP><LoopP type="loop"><P><Id>3</Id><Pid>1</Pid></P></LoopP></LoopO><LoopO type="loop"><O><Id>4</Id><Pid>0</Pid></O></LoopO><LoopO type="loop"><O><Id>5</Id><Pid>0</Pid></O></LoopO></LoopS>
</Items>

这里可以和我们上传的源文件做一个对比,可以看到按照字符切分字段,实现的嵌套效果。

接下来以平文件按照长度切分字段的情况为例,在Position_S_O_P端口上传测试文件:Position_S_O_P.txt,在输出选项卡下查看端口的转换效果,点击文件名进行预览,对比上传的源文件,可以看到同样实现了嵌套效果。

Flat-File3.png

源文件:

S0 0
O1  0 
P2   1  
P3   1  
O4  0 
O5  0

经过 FlatFile端口转换后的文件:

<Items><LoopS type="loop"><S><Id>0</Id><Pid>0</Pid></S><LoopO type="loop"><O><Id>1</Id><Pid>0</Pid></O><LoopP type="loop"><P><Id>2</Id><Pid>1</Pid></P></LoopP><LoopP type="loop"><P><Id>3</Id><Pid>1</Pid></P></LoopP></LoopO><LoopO type="loop"><O><Id>4</Id><Pid>0</Pid></O></LoopO><LoopO type="loop"><O><Id>5</Id><Pid>0</Pid></O></LoopO></LoopS>
</Items>

那么我们如何自定义结构呢?需要注意的是,由于现在Flatfile端口的UI还不支持EDI嵌套结构的操作。所以,需要手动编辑软件安装目录下的 端口文件夹\Resources\schema.json 文件。

Flat-File4.png

按分隔符切分字段的schema.json如下:

{"DelimitationType": {"Segment": {"Type": "Character","Delimiter": "\n","EscapeType": "Escaping","EscapeChar": "\\"},"Element": {"Type": "Character","Delimiter": ",","EscapeType": "Escaping","EscapeChar": "\\"}},"Parts": [{"Id": "LoopS","Max": -1,"Loop": [{"Id": "S",},{"Id": "LoopO","Max": -1,"Loop": [{"Id": "O",},{"Id": "LoopP","Max": -1,"Loop": [{"Id": "P",}]}]}]}],"Segments": {"S": {"Elements": [{"Name": "Type"},{"Name": "Id"},{"Name": "Pid"}]},"O": {"Elements": [{"Name": "Type"},{"Name": "Id"},{"Name": "Pid"}]},"P": {"Elements": [{"Name": "Type"},{"Name": "Id"},{"Name": "Pid"}]}}
}

按照长度切分字段的schema.json如下:

{"DelimitationType": {"Segment": {"Type": "Position"},"Element": {"Type": "Position"}},"Parts": [{"Id": "LoopS","Max": -1,"Loop": [{"Id": "S",},{"Id": "LoopO","Max": -1,"Loop": [{"Id": "O",},{"Id": "LoopP","Max": -1,"Loop": [{"Id": "P",}]}]}]}],"Segments": {"S": {"Elements": [{"Name": "Type","PositionLength": 1},{"Name": "Id","PositionLength": 2},{"Name": "Pid","PositionLength": 1}]},"O": {"Elements": [{"Name": "Type","PositionLength": 1},{"Name": "Id","PositionLength": 3},{"Name": "Pid","PositionLength": 2}]},"P": {"Elements": [{"Name": "Type","PositionLength": 1},{"Name": "Id","PositionLength": 4},{"Name": "Pid","PositionLength": 3}]}}
}

以上便是按照分隔符切分字段以及按照长度切分字段两种不同情况下,schema.json的不同写法了。大家可以以这两个端口下的Schema为例,根据实际需求,自定义结构。

如果新创建了一个Flat File端口,则需要在软件安装目录下找到这个端口,在这个端口下添加一个命名为Resources的文件夹,并创建一个schema.json的文件,在这里编写脚本实现自定义结构。

如果您希望了解有关EDI对接的相关信息,欢迎交流。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com