Ford EDI ⇄ JSON 工作流

使用 Json 生成一系列 EDI 文档与 Ford 通信。

近期为了帮助广大用户更好地使用 EDI 系统,我们根据以往的项目实施经验,将成熟的 EDI 项目进行开源。用户安装好知行之桥 EDI 系统之后,可以导入本示例工作区,了解 Ford 830、862、856 报文的转换、映射和功能确认处理流程。

本文主要介绍 Ford EDI 项目,说明该工作区中各端口的用途、如何在知行之桥 EDI 系统中部署和完善配置,以及如何进行基础测试。

Ford & JSON 方案简介

Ford 示例工作区基于知行之桥 EDI 系统搭建,围绕 Ford 的 X12 报文与业务 JSON 数据转换场景,预配置了以下业务流程:

  1. X12 830 物料需求计划,Ford -> 供应商。
  2. X12 862 发运计划,Ford -> 供应商。
  3. X12 856 提前发货通知,供应商 -> Ford。

当前 Ford 工作区中的核心端口包括:

  1. X12 端口:Ford_X12ToXML 用于将 Ford 下发的 830、862 报文转换为 XML;Ford_XMLToX12 用于将内部 XML 转换为发送给 Ford 的 856 报文,并处理工作流中的 997 功能确认路径。
  2. Branch 端口:Ford_Inbound_Branch 根据 /Interchange/FunctionalGroup/TransactionSet/*/Meta/ST01 的值识别交易集类型。ST01 等于 830 时进入 830 映射,等于 862 时进入 862 映射。
  3. XMLMap 端口:Ford_830_Map、Ford_862_Map 分别将入站 830、862 XML 转换为对应的业务 JSON 结构;Ford_856_Map 将 856 业务 JSON 转换为 X12 端口所需的 XML 结构。
  4. JSON 端口:Ford_830_JSON、Ford_862_JSON 用于输出入站业务 JSON;Ford_856_JSON 用于接收供应商系统提交的 856 业务 JSON。
  5. AS2 端口:Ford_AS2 负责接收 Ford 发来的 X12 文件,并将 Ford_XMLToX12 生成的 856、997 X12 文件发送给 Ford。
  6. Notify 端口:Ford_Notify 连接 Ford_Inbound_Branch 的 Else 路径。当入站报文无法识别为 830 或 862 时,系统通过该端口发送异常通知。

当前工作区已预置 AS2 端口及收发流程连接,但尚未形成可用的 Ford AS2 通信配置。正式联调前,需要根据 Ford 提供的 AS2 Profile 配置双方 AS2 ID、交易伙伴 URL、证书、自动发送及 MDN 策略。

工作流概览

Ford 工作区当前包含以下主要链路:

  1. 接收 830:Ford_AS2 -> Ford_X12ToXML -> Ford_Inbound_Branch -> Ford_830_Map -> Ford_830_JSON。

  2. 接收 862:Ford_AS2 -> Ford_X12ToXML -> Ford_Inbound_Branch -> Ford_862_Map -> Ford_862_JSON。

  3. 发送 856:Ford_856_JSON -> Ford_856_Map -> Ford_XMLToX12 -> Ford_AS2。

  4. 功能确认:Ford_X12ToXML 生成的 997 确认 XML 经 ACK 路径进入 Ford_XMLToX12,转换为 X12 后进入 Ford_AS2。

  5. 异常通知:Ford_Inbound_Branch Else -> Ford_Notify。

其中,830 和 862 是 Ford 发给供应商的入站计划类报文;856 是供应商发给 Ford 的出站发货通知。

如何在知行之桥 EDI 系统中部署工作流?

创建工作区

运行知行之桥 EDI 系统,导航到工作流选项卡并单击右上角的添加工作区按钮。选择添加新工作区,为此示例流创建一个新的工作区,例如 Ford。

导入工作区

在工作区下拉菜单中单击导入工作区。在出现的对话框中选择项目根目录下的 Ford.arcflow,以导入相关端口、映射、Schema 和工作流连接;也可以直接将该文件拖拽到指定工作区。用于本地验证的 830.x12、862.x12 和 856.json 位于 testfile 目录。

成功导入后,你将看到 Ford 的完整工作流,包括 AS2、X12、Branch、XMLMap、JSON 和 Notify 等端口。

完善工作流配置

配置 AS2 通信端口

工作区中的 Ford_AS2 已连接入站和出站工作流,但当前 AS2 ID、交易伙伴 URL 和证书尚未配置,自动发送也未启用。该端口只能用于展示流程结构,不能直接作为可用的 Ford 通信链路。部署到测试或生产环境前,需要按照 Ford 当前 AS2 Profile 补充参数并完成联调验证。

示例安全配置启用了消息签名、消息加密、AES 加密算法和签名同步 MDN,其中签名算法当前为 SHA1。这些参数仅用于展示工作流配置,不代表 Ford 生产环境要求,也不应直接用于生产。实际使用时,必须导入有效的双方证书,并以 Ford 当前 AS2 Profile 为准确认签名算法、加密算法、证书及 MDN 类型。

对于入站方向,Ford_AS2 将接收到的 Ford X12 文件发送到 Ford_X12ToXML。对于出站方向,Ford_XMLToX12 将生成的 856 和 997 X12 文件发送到 Ford_AS2。当前 AS2 自动发送尚未启用,因此测试中生成的 997 文件进入 AS2 后显示为“未发送”;补齐交易伙伴参数并启用自动发送后,再验证实际发送和 MDN 回执。

配置异常通知

Ford_Notify 接收 Ford_Inbound_Branch 的 Else 路径,用于通知无法识别为 830 或 862 的入站文件。当前通知主题为 Message Notify。正式使用前,请补充收件人等邮件参数,并通过一份非 830/862 报文验证通知链路。

配置 X12 端口

Ford_X12ToXML 和 Ford_XMLToX12 负责 X12 与 XML 的互转。当前工作区使用 X12 00200 基础版本,并包含 830、856、862 和 997 Schema;测试文件中 830 的 GS08 为 002001FORD,862 的 GS08 为 002002FORD。这些 Ford 实施指南标识及交易集结构需要按当前工厂、项目和报文方向分别确认,不能仅根据 00200 判断兼容性。正式联调前,请确认以下内容:

  • ISA/GS 发送方和接收方标识及其限定符。

  • X12 版本、分隔符、控制号和生产/测试标识。

  • 各报文使用的 GS08、Ford 实施指南版本及工厂或项目差异。

  • 830、862、856 的交易集规则和必填字段。

  • TA1、997 功能确认的生成、回传和异常处理策略。

示例配置中已包含测试标识值,部署到实际环境前需要替换或确认,不能直接作为生产参数使用。

检查分支和映射

Ford_Inbound_Branch 使用 ST01 区分 830 和 862。若后续新增其他入站交易集,需要同时增加分支条件、X12 Schema、XMLMap 映射和目标业务端口。

Ford_830_Map、Ford_862_Map 和 Ford_856_Map 已带有源与目标样例。正式使用前,请结合 Ford 实施指南及企业内部接口定义,检查零件号、采购订单号、数量、日期、装运层级、包装层级、地点代码和累计量等关键字段。

830、862 中的累计量和新增需求量不能直接按相同方式重复累加。应结合 Ford 对应实施指南、报文用途及工厂业务规则,确认累计口径、覆盖逻辑和增量处理方式。

本地测试流程

测试接收 830

以接收 Ford 下发的 830 物料需求计划为例,测试流程如下:

1. 导航到 Ford_X12ToXML 端口,在输入页面上传 830 X12 测试报文。
本示例已使用 830.x12 完成测试。Ford_X12ToXML 输入事务和 XML 输出事务均成功。

2. 报文转换为 XML 后进入 Ford_Inbound_Branch;分支读取 ST01=830,并将文件发送到 Ford_830_Map。

3. 映射结果进入 Ford_830_JSON,可在事务或输出文件中查看业务 JSON,并核对发布编号、需求日期、零件号、订单号、数量和累计量等字段。

本次测试已生成 830_014299646.json,XML 到 JSON 转换成功。

4.  检查 X12 端口生成的 997 功能确认及事务日志,确认控制号和交易集状态正确。

测试接收 862

以接收 Ford 下发的 862 发运计划为例,测试流程如下:

  1. 导航到 Ford_X12ToXML 端口,在输入页面上传 862 X12 测试报文。

本示例已使用 862.x12 完成测试。Ford_X12ToXML 输入事务和 XML 输出事务均成功,运行情况与上方 image15 所示一致。

  1. 报文转换为 XML 后进入 Ford_Inbound_Branch;分支读取 ST01=862,并将文件发送到 Ford_862_Map。

  2. 映射结果进入 Ford_862_JSON,可在事务或输出文件中查看业务 JSON,并核对计划编号、交付地点、零件号、需求日期和数量等字段。

本次测试已生成 862_014275256.json,XML 到 JSON 转换成功。

4. 检查 X12 端口生成的 997 功能确认及事务日志,确认控制号和交易集状态正确。
830 和 862 的 997 确认均已由 Ford_X12ToXML 生成,并经 Ford_XMLToX12 成功转换为 X12。生成的文件分别为 830_997_ACK_000000008.x12 和 862_997_ACK_000000007.x12。由于当前 Ford_AS2 未启用自动发送,两条 997 在 AS2 端口显示为“未发送”,这不影响前述报文转换和 ACK 生成结果。

测试发送 856

以供应商向 Ford 发送 856 提前发货通知为例,测试流程如下:

  1. 准备符合 Ford_856_JSON 输入结构的 JSON 文件。

  2. 导航到 Ford_856_JSON 端口,在输入页面上传测试 JSON。

3. 文件经 Ford_856_Map 转换为 856 XML,再经 Ford_XMLToX12 生成 X12 856 报文。

  1. 在 Ford_XMLToX12 的输出文件和事务日志中检查 ISA、GS、ST、BSN、HL、TD1、REF、N1、PRF、LIN、SN1、CTT 等业务段及控制号。

  2. 本地转换完成后,可以检查生成的 856 X12 文件。补齐 Ford_AS2 的交易伙伴参数并启用自动发送后,还需分别验证 AS2 发送、MDN、TA1/997 以及 Ford 业务系统的接收结果。

验证范围

当前截图和事务记录证明以下本地处理步骤已经完成:

  • 830、862 测试文件导入以及 X12 转 XML。
  • 830、862 的分支识别、业务映射和 JSON 输出。
  • 830、862 的 997 生成以及 XML 转 X12。
  • 856 测试 JSON 的映射以及 XML 转 X12。

通信和业务验证需要分层判断:

验证层级 含义 当前状态
本地转换 文件导入、格式转换、映射和输出文件生成 已验证
AS2 MDN 证明 AS2 传输层已接收并处理消息 尚未验证
TA1 / 997 证明交换信封或功能组、交易集语法处理结果 尚未验证 Ford 返回结果
Ford 业务系统 证明报文已被 Ford 业务流程接受 尚未验证

AS2 MDN、TA1、997 和 Ford 业务系统接受代表不同验证层级,不能将“本地生成成功”“AS2 发送成功”和“Ford 业务接受”视为同一结论。

后续步骤

当前工作区已经完成转换、映射和 ACK 生成链路的本地验证。下一步需要补齐 AS2 交易伙伴参数和证书、启用自动发送,并使用 Ford 确认的 830、862、856 测试文件完成 AS2 通信、MDN、Ford 返回确认及业务系统接收验证。

如果你遇到任何问题或有任何疑问,请随时联系我们。