Flat File端口更新:如何实现嵌套结构

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对接的相关信息,欢迎交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1541082.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

2024年中国研究生数学建模竞赛ABCDEF题【附带解题思路代码+结果】

2024年中国研究生数学建模竞赛D题 点击链接加入群聊【2024华为杯数学建模助攻资料】&#xff1a;http://qm.qq.com/cgi-bin/qm/qr?_wv1027&kxtS4vwn3gcv8oCYYyrqd0BvFc7tNfhV7&authKeyedQFZne%2BzvEfLEVg2v8FOm%2BWNg1V%2Fiv3H4tcE6X%2FW6lCmkhaSaZV4PwQ%2FOVPDtF%2B…

css实现居中的方法

水平居中 1. 行内设置text-align 给父元素设置text-align为center&#xff0c;一般用于实现文字水平居中 2. 给当前元素设置margin&#xff1a;0 auto 原理&#xff1a;块级独占一行&#xff0c;表现为在水平方向上占满整个父容器&#xff0c;当水平方向padding&#xff0c;…

算法-Init

&#xff08;1&#xff09;有限性&#xff08;Finiteness&#xff09;&#xff1a;算法必 需在有限步骤内结束&#xff1b; &#xff08;2&#xff09;确定性&#xff08;Definiteness&#xff09;&#xff1a;算法的每一个步骤必须清晰无歧义地定义&#xff1b; &#xff08;3…

2024年Q3国际信息系统安全认证联盟(ISC2)内部研讨会要点分享

2024年是CISSP认证成立30周年&#xff0c;这是一项具有里程碑意义的成就&#xff0c;代表了CISSP在网络安全领域的卓越、创新和领导力。博主于今年9月份参加了ISC2&#xff08;国际信息系统安全认证联盟&#xff09;组织的2024年第3季度内部网络研讨会&#xff0c;针对会议中的…

国标视频流媒体服务GB28181和Ehome等多协议接入的Liveweb方案详解

Liveweb视频融合/汇聚云平台基于“云-边-端”一体化架构&#xff0c;部署轻量简单、功能灵活多样&#xff0c;平台可支持多协议&#xff08;GB28181/RTSP/Onvif/海康SDK/Ehome/大华SDK/RTMP推流等&#xff09;、多类型设备接入(IPC/NVR/监控平台)&#xff0c;在视频能力上&…

Python 二级考试

易错点 电脑基础知识 定义学生关系模式如下&#xff1a;Student &#xff08;S#&#xff0c; Sn&#xff0c; Ssex&#xff0c;class&#xff0c;monitorS#&#xff09;&#xff08;其属性分别为学号、学生名、性别、班级和班长学号&#xff09; 在关系模式中&#xff0c;如果…

.NET内网实战:通过FSharp白名单执行命令

01阅读须知 此文所节选自小报童《.NET 内网实战攻防》专栏&#xff0c;主要内容有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧。 02基本介绍 本文内容部分节选自小报童《.NET 通过Fsharp执行命令绕过安全防护》我们会长期更新&#xff01; 03编码实现 Fsi.exe 是…

信息安全工程师(9)网络信息安全管理内容与方法

前言 网络信息安全管理是确保网络资产&#xff08;包括网络设备、网络通信协议、网络服务及网络管理&#xff09;的安全性、可用性、完整性和可控性的重要工作。 一、网络信息安全管理内容 数据安全&#xff1a; 保密性&#xff1a;确保数据不被未经授权的第三方获取。完整性&a…

go的结构体、方法、接口

结构体&#xff1a; 结构体&#xff1a;不同类型数据集合 结构体成员是由一系列的成员变量构成&#xff0c;这些成员变量也被称为“字段” 先声明一下我们的结构体&#xff1a; type Person struct {name stringage intsex string } 定义结构体法1&#xff1a; var p1 P…

xhs 小红书 x-s web 分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 有相关问题请第一时间头像私信联系我…

详解npm源及其使用方法

详解npm源及其使用方法 npm源是一个用于存储和提供npm包的服务器地址&#xff0c;npm在安装包时会通过这个源地址下载对应的依赖包。默认情况下&#xff0c;npm使用官方的npm源&#xff08;https://registry.npmjs.org/&#xff09;&#xff0c;该源存储了海量的Node.js开源包…

QMT获取可转债行情数据方法介绍!支持QMT量化软件的券商平台?

获取可转债行情 为了获取转债的日线/1m/1d的k数据&#xff0c;以通过数据订阅形式获取最新行情subscribe_quote。如果您需要获取历史数据&#xff0c;可以使用download_history_data函数下载相关数据&#xff0c;然后使用get_market_data_ex函数提取所需的信息。这样&#xff…

两步搞定!手把手教你如何在VPS上自托管任何应用

你有没有遇到过这样的情况:看上去很酷的应用,想要自托管,结果在部署时却被各种配置、环境搭建搞得头疼不已?即使有些教程说得头头是道,操作起来依旧满头问号。你不是一个人!很多人都有这种困扰,包括我自己。不过,今天我想给你介绍一个神奇的工具——Sidekick。这个工具…

Mysql存储过程详细解读

目录 存储过程介绍 创建与调用 查看与删除 变量 系统变量 用户自定义变量 ​编辑局部变量 ​编辑​编辑IF判断 存储过程参数​编辑​编辑​编辑 CASE ​编辑 WHILE​编辑 ​编辑REPEAT​编辑​编辑 LOOP 游标 条件处理程序 存储函数 存储过程介绍 创建与调用 查…

【面试宝典】面试基础指导

目录 &#x1f354; 简历怎么写 &#x1f354; ⾯试前针对项⽬撰写完成项⽬⽂档 &#x1f354; ⾯试前 &#x1f354; ⾯试中 4.1 投递简历当天没有收到⾯试邀约 4.2 讲解项⽬ 4.3 讲解知识 4.4 ⾯试中关于技术选型的演变 &#x1f354; ⾯试后 &#x1f354; 小结 &…

【devops】rsync介绍和使用

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…

--芯片测试--

目录 芯片逻辑是什么 芯片如何选型&#xff1f; 测试策略有什么 Alpha测试和Beta测试的区别&#xff1f; 主要区别 TOPS是什么 如何计算TOPS MAC单元是什么 频率的单位是什么 如何解决跨时钟域问题&#xff1f; 解释一下对异步电路的理解&#xff0c;以及如何实现同步…

Python酷库之旅-第三方库Pandas(123)

目录 一、用法精讲 546、pandas.DataFrame.ffill方法 546-1、语法 546-2、参数 546-3、功能 546-4、返回值 546-5、说明 546-6、用法 546-6-1、数据准备 546-6-2、代码示例 546-6-3、结果输出 547、pandas.DataFrame.fillna方法 547-1、语法 547-2、参数 547-3、…

828华为云征文 | 云服务器Flexus X实例:RAG 开源项目 FastGPT 部署,玩转大模型

目录 一、FastGPT 简介 二、FastGPT 部署 2.1 下载启动文件 2.2 开放端口权限 2.3 启动 FastGPT 三、FastGPT 运行 3.1 登录 FastGPT 3.2 知识库 3.3 应用 四、总结 本篇文章主要通过 Flexus云服务器X实例 部署 RAG 开源项目 FastGPT&#xff0c;通过 FastGPT 可以使…

Spring MVC 基础 : 文件、cookies的接收 ,REST响应

一、接受文件 在 Spring MVC 中&#xff0c;可以使用 RequestPart 注解来接收文件。这个注解常用于处理复杂的请求&#xff0c;如同时发送 JSON 数据和文件。RequestPart 非常适用于多部分请求&#xff08;multipart requests&#xff09;&#xff0c;这在单个请求中同时发送文…