知行之桥EDI系统功能介绍——FlatFile 端口介绍

FlatFile 端口能够实现平面文件与XML文件的互相转换。

FlatFile1.png

每个 Flat File 端口配置一个特定的平面文件格式,从而实现与 XML 格式的互相转换。Flat File 端口有两个主要的模式:

  • Position Delimited
  • Character Delimited

对于 Position Delimited 平面文件,端口 设置 选项卡下的 行类型 中,可以配置任意的字段名称、索引(即位置)和长度,表明数据在平面文件中每一行出现的位置。

FlatFile2.png

对于 Character Delimited 平面文件,端口配置有分隔平面文件中字段值的字符。

FlatFile3.png

Flat File 端口支持定义多种平面文件中不同类型的行。例如,平面文件中可能有一个 “header” 行,代表订单的日期,有多个 “item” 行,代表订单中的行项目。

定义多种行类型的关键是指定控制字段;控制字段值决定了在平面文件中特定的行类型(例如,header 行可能有一个控制字段值为 “HEAD”,item 行可能有一个控制字段值为 “ITEM”)。

平面文件格式配置完后,端口会转换与此格式匹配的文件到 XML。最终的 XML 结构在 XML 格式部分有详细解释。Flat File 端口也可以将匹配这种结构的 XML 转换为定义的平面文件格式。

某些平面文件在不同行有隐含的上下级关系。

端口配置
配置部分

FlatFile4.png

端口 Id:端口的静态、唯一标识符。
端口类型:显示端口类型及其用途的描述。
端口描述:一个可选字段,用于提供端口及其在流中的角色的自由格式描述。
文件类型:Position Delimited – 平面文件中的字段显示在每一行的特定位置。
Character Delimited – 这个属性需要指定特定的分隔符。
分隔符:如果文件类型设置为 Character Delimited,则表示平面文件中用于分隔各个字段的字符。

控制字段:位置分离

控制字段主要用于位置分隔,这里主要完成和控制字段有关的设置,决定了在平面文件格式中定义的不同的行类型。

FlatFile5.png

多行模式:平面文件是否包括多种行类型。
起始索引:如果多行模式启用,该值就是行中控制字段开始的索引。例如,如果某一行中的第一个字段定义了行类型(即第一个字段是控制字段),那么起始索引就是 0。
控制字段长度:(可选)如果多行模式启用,这个值定义了从起始索引开始读取控制字段的长度。
当前列标题:如果不启用多行模式,这个设置则决定了平面文件中的第一行是否应该被解析为列标题(即每个字段的名称而不是实际的数据)。同样的,启用这个设置,就会使得端口在将文件从 XML 转换为平面文件时生成一个标题行。

控制字段:字符分隔

和控制字段有关的设置,决定了在平面文件格式中定义的不同的行类型。

FlatFile6.png

多行模式:平面文件是否包括多种行类型。更多信息请查阅多种行类型部分
字段索引:如果多行模式启用,该值就是行中(索引从 0 开始)控制字段的索引。例如,如果某一行中的第二行定义了行的类型(即第二行是控制字段),那么字段索引就是 1。
生成字段/行类型名称:如果多行模式启用,那么该设置提供了一个选项,在平面文件中 不 指定字段和行的名称和索引。当启用这个设置,端口将会自动为下面行类型中没有明确定义的字段和行生成 XML 元素。
当前列标题:如果不启用多行模式,这个设置则决定了平面文件中的第一行是否应该被解析为列标题(即每个字段的名称而不是实际的数据)。同样的,启用这个设置,就会使得端口在将文件从 XML 转换为平面文件时生成一个标题行。
使用自动生成的字段名称:如果多行模式没有启用,这个设置决定了端口是否生成通用字段名称。不启用该选项,在行类型部分手动指定字段名称。

行类型

该部分允许以平面文件格式定义字段名和位置(如果文件类型是 Position Delimited)。

FlatFile7.png

如果多行模式启用,使用添加行类型按钮定义。每个行类型有一个控制字段,来标识行类型。例如,header 行可能有值为 HEAD 的控制字段,item 行可能有值为 ITEM 的行。

如果文件类型设置为 Character Delimited,多行模式启用,生成字段/行类型名称 启用,那么为平面文件中存在的所有字段和行类型提供名称和索引就不是必需的。

高级

FlatFile8.png

填充字符:当创建平面文件但字段值不能填满整个字段长度时,这个字段会被用来填满剩余部分。
无效的XML名称前缀:某些字段名对于 XML 元素时无效的(例如,以数字开头的字段像 “123ABC”),所以在从平面文件生成 XML 时必须设置一个前缀。同样的,当从 XML 转换 平面文件时,端口会查找该前缀并去除它。
行分隔符:指定行与行之间的分隔符。选项为 LF (默认) 和 CRLF。
本地文件名格式:用于为端口输出的消息分配文件名的方案。 可以在文件名中动态使用宏来包含标识符和时间戳等信息。 有关详细信息,请参阅宏。
嵌套行类型:该设置仅在从平面文件转换到 XML 文件时,且在平面文件中有多种行类型时才相关。如果多行模式启用,端口将会根据平面文件的控制字段行(即定义行类型的字段)增加层级关系到最终的 XML。
行尾填充:默认设置下,端口会在遇到异常的行尾时抛出错误。当启用时,该设置告知端口填充端口而不是抛出错误。
始终使用单元格分割符:如果文件类型设置为 Character Delimited时,打开此设置以使端口始终使用单元格分隔符(”)包装所有值,关闭此设置后端口仅会包装还有分隔符的值。
延迟处理放置:在输入文件夹中的文件的处理延迟的时间量(以秒为单位)。 这是一个遗留设置。最佳实践是使用 File 端口 来管理本地文件系统,而不是此设置。

定义平面文件格式

配置 Flat File 端口的第一步就是定义平面文件的格式。本部分介绍具有单行类型的格式,换句话说,平面文件中的每一行都具有相同的字段集。对于有多个不同行类型的平面文件,请查阅多种行类型 部分。

Character Delimited 的单行格式

对于 Character Delimited 的平面文件,定义格式很简单:通过分隔符属性指定平面文件中分隔不同字段的字符。

当前列标题 字段说明了平面文件中的第一行是否是标题行;换句话说,它包含了字段名称而不是实际数据。如果这些列标题存在,端口将会使用这些标题名称作为最终转换成的 XML 中的 XML 元素名。

如果列标题不存在,端口支持通过在行类型中添加字段,手动指定每一个字段的名称。这些字段名称按照索引顺序应用,意味着行类型中的第一个条目将会是平面文件行中第一个字段的名称,以此类推。

端口也可以通过启用使用自动生成的字段名称来自动生成通用的字段名称。

Position Delimited 的单行格式

对于 Position Delimited 的平面文件,定义格式需要指定在格式中每个字段的位置。端口设置中行类型部分为平面文件中存在的行增加任意数量的字段。每个字段必须使用名称和其在平面文件中出现的位置进行标识。

当前列标题 字段表明了平面文件中的第一行是否为标题行;换句话说,它包括了字段名称而不是实际数据。字段名称仍然需要在行类型部分中配置,且这个设置简单地保证了标题行不被识别为实际数据。

多种行类型

如果平面文件格式包括了多种行类型,多行模式属性应该被启用。平面文件中标识行类型的字段被称为控制字段。

Character Delimited 的多种行类型

当文件类型为 Character Delimited,字段参数设置决定了控制字段出现在平面文件中每一行地位置。该索引从 0 开始,意味着如果控制字段是行中的第 5 个值,那么字段索引就应该是 4。

对于可能出现在控制字段的每个值,在端口设置行类型单击增加行类型按钮。标识行类型的值应该在该行的控制字段值中设置。

一旦每个可能的行类型通过特定的控制字段值被添加和标识,在每行中将出现的字段应根据索引顺序指定。

如果生成字段/行类型名称启用,为在平面文件中存在的所有字段或行类型(只有控制字段必需)提供名称和索引是必需的。在这种情况下,端口将会为任何未定义的字段或行类型自动生成 XML 元素。

Position Delimited 的多种行类型

当文件类型是 Position Delimited,起始索引设置决定了控制字段在平面文件中每一行出现(开始)的位置。这个索引从 0 开始,意味着如果控制字段从行中第 15 个字符开始,那么字段索引就应该是 14。

对于可能出现在控制字段的每个值,在端口设置行类型单击增加行类型按钮。标识行类型的值应该在该行的控制字段值中设置。

一旦每个可能的行类型通过特定的控制字段值被添加和标识,在每行中将出现的字段应根据所处(开始)的位置指定。

多种行示例

例如,某个平面文件包括两种类型的行,一个 shipment 行和一个 package 行。shipment 行包括发货的日期、时间和地址信息,package 行类型包括了发货的项目信息。

shipment 行可能有一个值为 “SHIP” 的控制字段值,package 行可能有一个值为 “PCKG” 的控制字段值。每一行的第一个字段是 “SHIP” 或 “PCKG” 来说表明该行是什么类型。

针对这种情况,多行模式应该被启用,且字段索引(或起始索引)应设置为 0,表明控制字段是该行中的第一个字段。然后,在行类型部分应该配置有两种行类型;一种控制字段值为 “SHIP”,包括 shipment 行的每个字段(例如发货日期,交付日期,收货地址等),一种控制字段值为 “PCGK”,包括 package 行的每个字段(例如项目名称,项目重量等)。

XML 格式

在平面文件转换为 XML 文件之后,结果应有如下的 XML 结构:

位于文件根部的 Items 元素

平面文件中的每一行有一个与该行控制字段值相同的元素(如果未定义控制字段值,则是“行”)

行中的每个字段是控制字段值元素的子元素

例如,如果平面文件有 “SHIP” 和 “PCKG” 行,那么输出的 XML 会和此格式相似:

<Items><SHIP><ShipmentId>12B992</ShipmentId><Date>20200228</Date><ShipTo>14 Wallaby Way</ShipTo></SHIP><PCKG><ShipmentId>12B992</ShipmentId><ItemName>Goggles</ItemName><ItemWeight>3.98</ItemWeight></PCKG><PCKG><ShipmentId>12B992</ShipmentId><ItemName>Fins</ItemName><ItemWeight>1.07</ItemWeight></PCKG>
</Items>

转换 XML 文件为平面文件,输入的 XML 必须与上面的结构匹配(包括字段名称必须与端口配置中定义的字段匹配的限制)。

转换 XML 文件为平面文件,端口将在最终的平面文件中为每个 row 元素创建一个新行。对于 row 元素的每个子元素,端口将会将其与端口配置中字段名称匹配, 并将该元素放到合适的字段索引。

了解更多 EDI 信息,请参阅: EDI 是什么?

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

紧急救援(pta团体天梯题)dijkstra算法灵活运用c++

作为一个城市的应急救援队伍的负责人&#xff0c;你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候&#xff0c;你的任务是带领你的…

【Git篇】复习git

文章目录 &#x1f354;什么是git⭐git和svn的区别 &#x1f354;搭建本地仓库&#x1f354;克隆远程仓库&#x1f6f8;git常用命令 &#x1f354;什么是git Git是一种分布式版本控制系统&#xff0c;它可以追踪文件的变化、协调多人在同一个项目上的工作、恢复文件的旧版本等…

在宝塔面板中,为自己的云服务器安装SSL证书,为所搭建的网站启用https(主要部分攻略)

前提条件 My HTTP website is running Nginx on Debian 10&#xff08;或者11&#xff09; 时间&#xff1a;2024-3-28 16:25:52 你的网站部署在Debain 10&#xff08;或者11&#xff09;的 Nginx上 安装单域名证书&#xff08;默认&#xff09;&#xff08;非泛域名&#xf…

了解 C++ 中的三元运算符

在 C 编程中&#xff0c;三元运算符是一种特殊的运算符&#xff0c;也被称为条件运算符。它由 “?” 和 “:” 组成&#xff0c;通常用于简单的条件判断和返回不同的值。本文将介绍三元运算符的基本语法以及如何在 C 中使用它进行条件判断。 三元运算符的语法 三元运算符的基本…

现在做抖音小店都需要准备什么?需要什么条件?门槛很高吗?

大家好&#xff0c;我是电商花花。 自从抖音小店这个项目做的人越来越多&#xff0c;很多人都想赶上抖音小店这个红利项目&#xff0c;但是很多新手在刚开始接触这个项目时候因为不懂&#xff0c;开始频频踩雷&#xff0c;不得不关店重新再来。 我们今天汇总了一下抖音小店的…

低代码开发:助力企业实现数字化运维体系搭建

随着数字化浪潮的推进&#xff0c;企业对于快速响应市场变化、提升运营效率的需求日益迫切。在这一背景下&#xff0c;低代码开发&#xff08;Low-Code Development&#xff09;作为一种新兴的软件开发方法&#xff0c;正逐渐受到企业的青睐。低代码开发不仅简化了开发过程&…

OSCP靶场--image

OSCP靶场–image 考点(CVE-2023-34152 suid strace提权) 1.nmap扫描 ## ┌──(root㉿kali)-[~/Desktop] └─# nmap -Pn -sC -sV 192.168.178.178 --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-27 23:43 EDT Nmap scan report for 192.168.178.17…

时间同步-chrony

场景&#xff1a;内网主机需要搭建 NTP 服务&#xff0c;设置一台主机作为服务端&#xff0c;其他主机作为客户端。 1 、服务端 1.1 、检查服务是否存在 如果服务存在可以跳过1.2、1.3&#xff0c;直接进行配置文件修改 systemctl status chronyd1.2、上传安装包 如果不存…

Java基础知识总结(24)

limit 分页 原理&#xff1a; /* limit m,n ​ m 表示从下标为 m 的记录开始查询&#xff0c;第一条记录下标为 0&#xff0c;n 表示取出 n 条出来&#xff0c;如 果从 m 开始不够 n 条了&#xff0c;就有几条取几条。m(page-1)*n&#xff0c;&#xff08;page 页码&#xff…

hive授予指定用户特定权限及beeline使用

背景&#xff1a;因业务需要&#xff0c;需要使用beeline对hive数据进行查询&#xff0c;但是又不希望该用户可以查询所有的数据&#xff0c;希望有一个新用户bb给他指定的库表权限。 解决方案&#xff1a; 1.赋权语句&#xff0c;使用hive管理员用户在终端输入hive进入命令控…

如何在群晖NAS搭建bitwarden密码管理软件并实现无公网IP远程访问

前言 作者简介&#xff1a; 懒大王敲代码&#xff0c;计算机专业应届生 今天给大家聊聊如何在群晖NAS搭建bitwarden密码管理软件并实现无公网IP远程访问&#xff0c;希望大家能觉得实用&#xff01; 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&am…

降分违规?90%新手会遇到的抖音小店运营问题!解决方法快围观!

哈喽~我是电商月月 今天我们聊聊新手开抖音小店会遇到的问题以及解决方法 为了完整性我们从头到尾分析&#xff0c;根据情况不同可自行翻阅 一&#xff0c;入驻和运营时的操作问题 1.营业执照的办理&#xff0c;选择&#xff0c;填写 营业执照的办理可以去当地工商局办理&…

nginx截取url后面的id比较大小

##这里下面的代码是截取url后面的文章id&#xff0c;然后比较小于200000的话&#xff0c;跳转到指定的页面 ##注意 http://xxx.com/index.html 需要换成自己的页面 #set $article_id ""; #set $history_flag 1; #set $min_article_id 10; # …

迭代器模式(统一对集合的访问方式)

目录 前言 UML plantuml 类图 实战代码 Iterator ArrayList Client 自定义迭代器 TreeNode TreeUtils Client 前言 在实际开发过程中&#xff0c;常用各种集合来存储业务数据并处理&#xff0c;比如使用 List&#xff0c;Map&#xff0c;Set 等等集合来存储业务数…

揭秘!抖音严打AI网红骗局,维护虚拟世界秩序!

近年来&#xff0c;AI网红在社交媒体平台上的兴起引发了不少争议。为了规范虚拟人物的内容创作&#xff0c;抖音平台决定对AI网红乱象进行严厉打击&#xff0c;并推出了一系列措施。 AI-321 | 专注于AI工具分享的网站 AI工具集 | 人工智能工具箱 | 全球顶尖AI工具软件推荐与分…

Linux:环境变量的特性及获取

目录 一、环境变量基本概念 1.1命令行参数 1.2常见环境变量 二、环境变量相关指令 创建本地变量 三、环境变量通常是具有全局属性的 一、环境变量基本概念 环境变量(environment variables)不是一个而是一堆&#xff0c;彼此之间其实没有关系。本质上是为了解决不同场景下…

如何用智能AI绘一幅世界地图?

今天我们分享一下&#xff0c;用智能AI绘一幅世界地图的方法&#xff01; 为了方便你极速体验&#xff0c;特意在文末为你准备了登录帐号&#xff0c;省去你注册的烦恼。 认准AI绘画官网 如果你在百度搜索“AI绘画”或“Midjourney”&#xff0c;找出来的基本全是广告&#…

MSTP环路避免实验

思科设备参考&#xff1a; 一&#xff0c;技术简介 MSTP&#xff08;多生成树协议&#xff09;&#xff0c;MSTP解决了STP和RSTP没有考虑vlan的问题&#xff0c;STP和RSTP将所有的vlan共享为一个生成树实例&#xff0c;无法实现负载分担&#xff0c;这样就导致了网络中一些设…

【深度学习】YOLOv8:别再pip install ultralytics了

&#x1f525;博客主页&#xff1a; A_SHOWY&#x1f3a5;系列专栏&#xff1a;力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 随着YOLOv8的版本不断更新&#xff0c;最新的几个版本会发现没有requirements.txt和setup.py&#xff0c;在安装包的依赖的时候&…

OpenAI奥特曼豪赌1.42亿破解长生不老

生物初创公司 Retro Biosciences 由山姆奥特曼投资1.42亿英镑&#xff0c;公司目标是延长人类寿命。 山姆奥特曼投资背景&#xff1a; 38 岁的奥特曼一直是科技行业的重要参与者。尽管年纪轻轻&#xff0c;奥特曼凭借 ChatGPT 和 Sora 等产品席卷了科技领域。奥特曼对 Reddit…