如何通过AS2messageid查询文件(如何通过AS2messageid查询文件)

此前的文章如何在 EDI 系统中查询文件? 中,我们介绍了在 EDI 系统中查询文件的几种方法。今天的文章主要针对以往客户遇到的实际用例为大家展开介绍。

通过EDI传输业务数据的过程中,当交易伙伴发出文件后,会写邮件提供发出文件的 message id,询问 A 公司是否收到该文件。

对 A 公司而言,每天都有几千条数据,通过 EDI 系统接收。业务人员如果手动逐一查询 message id ,工作量很大,并且会耗费大量时间。您可能会疑惑,为什么需要使用 message id 来查询文件而不是文件名呢?企业间通过 EDI 系统传输的业务文件,其文件名并不唯一,会出现文件名重复的情况,因此使用文件名来查询文件是否收到就不是很客观了。而 message id具有唯一性,每个文件的 message id 都不同。

假设A公司的交易伙伴现将文件名称为 test_data_1.edi 的文件发送给A 公司,通过交易伙伴的AS2端口发出时其 message id 为:

AS2_IN-20220923-164042904-8z3L@AS2_IN_AS2_OUT

要求A 公司通过此 message id 查询文件是否已成功接收。A公司的业务人员查文件的时候很不方便,需要把 MDN 下载下来,找到 message id 进行核对,确认当前接收文件的 message id 与交易伙伴发出的文件是否一致。

如何通过AS2messageid查询文件(如何通过AS2messageid查询文件)(1)

如上图所示,经 AS2 端口接收后,文件 test_data_1.edi 的 message id 需要下载对应 EDI 文件的 MDN 文件方可查询。如果文件数量庞大,仅是下载查询就会占据很大一部分的人力成本。

如何通过知行之桥 EDI 解决这个问题呢?

知行之桥 EDI 系统可以进行如下操作:将文件的 message id 写入文件头部,并进行简单配置,即可在状态页面进行搜索即可检索到我们需要查询的 EDI 文件。具体操作如下:

1.在 AS2 端口的 事件 选项卡下的 接收后(After Receive) 中写脚本把收到文件的 message id 写在 header 中;

如何通过AS2messageid查询文件(如何通过AS2messageid查询文件)(2)

脚本:

1

2

<arc:set attr="out.header:AS2-Message-Id" value="[AS2MessageId]"/>

<arc:call op="portSetMessageHeader" in="out"/>

2.点击页面右上角 齿轮 图标,在 高级设置 选项卡下的 高级设置 中,找到 可检索标题,配置为:as2-message-id。如图所示:

如何通过AS2messageid查询文件(如何通过AS2messageid查询文件)(3)

3.配置好以上两步之后,

模拟A公司交易伙伴发出文件:test_data_2.edi,A公司的AS2端口接收到新文件:test_data_2.edi。如图:

如何通过AS2messageid查询文件(如何通过AS2messageid查询文件)(4)

如上图所示,我们已将 message id 写入了消息头部,因此可以看到当前AS2 端口接收到的 test_data_2.edi 的 as2-message-id 为 AS2_IN-20220922-152509062-w1i9@AS2_IN_AS2_OUT。

4.在 状态 页面根据客户提供的 message id 进行搜索,就可以找到原始的文件。

在搜索框输入as2-message-id:AS2_IN-20220922-152509062-w1i9@AS2_IN_AS2_OUT。

查询结果如图所示:

如何通过AS2messageid查询文件(如何通过AS2messageid查询文件)(5)

成功查询到一条AS2端口接收的,message id 与原始文件相匹配的文件,表明该文件已成功被 A 公司接收。

检查文件是否成功收到的其他方法

除了检查AS2、OFTP等传输端口的message id 之外,还可以检查X12、EDIFACT等格式转换端口。具体如何操作呢?

以X12端口为例,如果您发现我们收到来自交易伙伴发送的X12报文如图所示:

如何通过AS2messageid查询文件(如何通过AS2messageid查询文件)(6)

接收文件如下:

856.x12855.x12850.x12810.x12

经格式转换后得到的文件如下:

如何通过AS2messageid查询文件(如何通过AS2messageid查询文件)(7)

856_000000004.xml855_000000003.xml850_000000002.xml810_000000001.xml

对比接收到的文件经X12端口转换前后的文件名称我们可以发现:

经X12端口转换后,文件名中增加了一串9位的数字。这里的9位数字我们将其成为ICN#。ICN# 取自文件内部的 EDI 字段:ISA13。我们可以判断出交易伙伴当前ICN# 的命名规则。以810_000000001.xml文件为例:

如何通过AS2messageid查询文件(如何通过AS2messageid查询文件)(8)

如图所示,810_000000001.xml文件中 ISA13字段值为000000001,会根据接收到的文件依次递增。

因此,我们在检查批量文件是否漏传的时候,可以在X12端口的输出选项卡下查看文件名,如果文件名是连续的数字,则说明文件均已被转换。如果出现数字断层,则需要引起重视,检查是哪些文件没有被成功转换或者可能接收失败。

以上方法仅限于ISA13值依次递增的情况。需要注意,不是所有交易伙伴发来的文件都会按照这个模式给ICN# 赋值,ICN# 也有可能会是一个9位的随机数,只要确保在规定的时间内不会重复即可。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页