如何通过AS2 message id查询文件?

此前的文章如何在 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 与交易伙伴发出的文件是否一致。

edi

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

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

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

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

edi

脚本:

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

edi

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

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

edi

如上图所示,我们已将 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。

查询结果如图所示:

edi

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

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

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

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

edi

接收文件如下:

856.x12
855.x12
850.x12
810.x12

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

edi

856_000000004.xml
855_000000003.xml
850_000000002.xml
810_000000001.xml

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

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

edi

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

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

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

其他查询方法

如果按照以上步骤未能成功查询到源文件可以参考这种方法:

AS2 传输分为两个方向,发送文件和接收文件。

发送文件时

当我们发送文件成功并收到交易伙伴的MDN回执,但对方反馈未收到文件时,如果文件是EDI标准报文,可以提供ICN#(即control number,对应X12报文的ISA13字段或EDIFACT报文的UNB5字段)进行确认。如果是其他类型的文件(如XML或JSON),则需要提供Message ID供交易伙伴查询。以下为详细步骤:

1.进入AS2端口的“ 输入”页面,点击已发送文件记录前的小加号,展开详细信息。
2.在详细信息中查找并提供“消息ID”(Message ID),该ID对应对方MDN回执中的Original-Message-ID。

edi
edi

接收文件时

当交易伙伴发送文件成功并收到我们返回的MDN回执,但我们在业务系统中未找到该数据时,需要对方提供文件的Message ID以便核查。对方提供的Message ID通常就是我们在MDN中返回的Original-Message-ID,如下图。

edi

如果直接在“日志”->“消息”页面搜索Original-Message-ID,可能无法获得结果。此时的解决方案如下:

1.启用AS2-Message-Id跟踪:
点击知行之桥EDI平台右上角的“齿轮”图标,进入“高级设置”页面,设置“AS2-Message-Id”作为跟踪标题。

edi

2.配置HTTP头Message-Id:
在AS2端口的高级设置页面,配置HTTP头为Message-Id。
edi
3.根据Message ID查询:
配置完成后,在“日志”->“消息”页面,选择“根据跟踪消息头过滤”,并选择“AS2-Message-Id”。使用对方提供的Message ID,即我们MDN回执中的Original-Message-ID进行搜索。
例如,如果Message ID为:AS2_VM_Test-20240926-122342471-Sg_f@AS2_VM_ID_AS2_LOCAL_ID,输入该ID进行查询。

edi
edi

注意

上述查询方式适用于知行之桥20.0.7843.0及之后的所有版本,且需要在完成步骤1和2后再接收到的新文件上使用。

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

了解更多EDI信息,请您电话 137-2065-8862 或邮件 sales@kasoftware.cn 联系我们。点击下方蓝色按钮,即可免费试用EDI软件。

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

标签: , , , , ,
文章分类 帮助文档, 常见问题和回答, 操作指南, 知识库