EDI系列课堂之Split 端口

当我们在与交易伙伴进行业务往来时,若供应商传输的XML文件包含一批数据,例如多个订单、多个行项目或多个客户记录时,想要将每个订单/项目/记录从这个“批量”的XML数据中拆分出来。该如何实现呢?

知行之桥EDI平台提供了Split端口可实现XML文件的拆分,具体操作步骤可参考如下视频:

本篇文章将带大家学习在EDI系统中如何使用Split端口实现XML文件拆分。

edi

端口功能

Split端口可以将单个XML文件拆分为多个XML文件。通过元素的Xpath路径进行XML文件拆分,在XML结构中指定Xpath,每次出现都会产生一个唯一的输出文件,该文件仍为XML文件。

实例

某客户在调用知行API接口上传订单数据时,想只调用一次在同一个XML中包含多组订单文件,但是交易伙伴每次只能接收一个订单文件,那么这个时候就需要用到Split端口了。

示例一

XML输入文件:

这是一个包含2个事务开始元素TransactionSet的XML文件。第一个TransactionSet对应的data为value1,第二个TransactionSet对应的data为value2。通过Split端口可以将该文件拆分为两个独立的输出文件,每个事务开始元素TransactionSet对应一个输出文件。

因此,应该将Xpath字段设置为TransactionSet元素的路径,即Xpath为/Items/Interchange/TransactionSet。

将产生以下两个输出文件,第一个文件中data值为value1,第二个文件中data值为value2。通过元素TransactionSet的路径将该XML文件进行拆分。

输出文件1:

输出文件2:

示例二

但是,在实际的数据传输中,可能输入的XML文件包含需要拆分成单独文件的多组数据,而这些数据组具有不同的元素名称。 如以下这个XML输入文件中的Group1、Group2和Group3。

那么如何将这种包含不同元素名称数据组的XML文件进行拆分呢?

Split端口的Xpath可以包含通配符(*),以便在给定的XPath上拆分所有元素。

因此,可以通过将这个示例中的XPath设置为/Items/* 来拆分这些元素名称不同的数据组。

将产生以下的三个输出文件,第一个文件的data值为value1、第二个文件的data值为value2,第三个文件的data值为value3。实现了拆分包含元素名称不同数据组的XML文件。

输出文件1:

输出文件2:

输出文件3:

演示

在知行之桥的页面,左侧端口中找到Split端口,拖入工作区。

edi

在Split端口的自动化选项卡中,取消端口的自动发送,目的是防止文件被系统自动发送。

edi

示例一

打开示例一文件,该文件包含2个事务开始元素TransactionSet,每个事务开始元素TransactionSet对应一个输出文件。

edi

因此,应该将xpath设置为TransactionSet元素的路径,即/Items/Interchange/TransactionSet。点击Split端口,输入xpath,如下图所示:

edi

点击输入选项卡,上传示例1文件,点击发送,如下图所示:

edi

在输出选项卡中,产生了2个输出文件,这2个文件是以源文件名+序号的规则进行命名的,如下图所示:

edi

下载消息并打开,可以看到通过元素TransactionSet的路径,该XML文件被拆分成了2个输出文件,如下图所示:

edi

示例二

打开示例二文件,该XML输入文件的数据组具有不同的元素名称:group1、group2、group3,每一个数据组对应一个输出文件。而Split端口的Xpath可以包含通配符(*),以便在给定的XPath上拆分所有元素。

edi

因此,应该将 XPath设置为/Items/*,来拆分这些元素名称不同的数据组。

点击Split端口,输入Xpath,如下图所示:

edi

点击输入选项卡,上传示例2文件,点击发送,如下图所示:

edi

在输出选项卡中,产生了3个输出文件,这3个文件是以源文件名+序号的规则进行命名的,如下图所示:

edi

下载消息并打开,可以看到即便是数据组名称不同,也可以将XML文件进行拆分。该XML文件被拆分成了3个输出文件,如下图所示:

edi

注:文案部分图片及内容来源于网络,版权归原创作者所有,如有侵犯到您的权益,请您联系我们进行删除,给您带来困扰,我们深感抱歉。

标签: , , , , ,
文章分类 EDI视频教程, 帮助文档, 知识库