跳转到主要内容
X12 端口支持从 XML 生成 X12 文件以及将 X12 文件转换为 XML。

核心功能

  • 完整的双向 EDI X12 与 XML 文档处理,支持所有事务集
  • 交换头和功能组头的验证与生成
  • 支持 997/999 功能确认(ACK)及自动路由
  • 提供 HIPAA 合规性所需的 SNIP 验证等高级功能

概览

接收 X12 报文时,X12 端口会验证 X12 交互头部并将 X12 报文转换为 XML。这是一个非常有用的准备步骤,因为 XML 是 用于处理工作流中数据的主要格式。X12 端口自动读取输入文件以确定与报文相匹配的 X12 Schema,然后根据该 Schema 解析报文。 生成 X12 报文时,X12 端口将 XML 文件转化为符合 X12 语法规则的 X12 报文,并应用此端口配置的 X12 交换头信息。这对于创建 X12 报文非常重要,此步骤发生在 XML 数据已在工作流其他位置完成获取和转换之后。
可以通过在端口的测试指示符设置中选择 Test Data 来跳过交换头验证。
X12 端口还可以自动为传入的 X12 报文生成 ACK。有关更多信息,请参阅 X12 ACK 部分。

先决条件

开始之前,请确保已为需要处理的文档类型安装了正确的 Schema。X12 端口本身支持以下 Schema 定义:00401、00403 和 00501。可以在 安装目录的 app_data/x12_schemas 目录中找到它们。如果需要不同的 Schema,可以从 官网 免费下载其他 Schema 文件。 下载并解压 zip 存档后,将整个文件夹放入 app_data/x12_schemas 目录下适当命名的子目录中。

端口配置

本节包含所有可配置的端口属性。

设置选项卡

转换配置

与端口核心操作相关的设置。

EDI 交易伙伴

交换头配置

与 X12 文档的交换头相关的设置。生成文档时,这些设置将作为交换头应用到生成的文档中。解析文档时,交换头设置用于验证传入文档。

ACK

与生成和请求确认相关的设置。

示例文件选项卡

高级设置选项卡

EDI 分隔符

指定哪些字符作为元素、段等的分隔符。

交换头配置

与 X12 交换头相关的其他设置。

功能组配置

与 X12 文档的功能组头相关的设置。这些可选标识符可以帮助对类似的交换进行分组或促进组织中的子寻址。

高级设置

先前类别中未包含的设置。

消息

日志

其他

EDI 交易伙伴选项卡

自动化选项卡

自动化设置

与端口自动处理文件有关的设置。

性能

告警选项卡

SLA 选项卡

转换格式

以下各节详细介绍了将 X12 转换为 XML 的过程,以及将 XML 转换为 X12 的过程。

X12 转换为 XML

转换类型设置为 X12 转换为 XML 指示端口将传入的 X12 文档解析为 XML。端口首先读取文档”交换”和”功能组”部分的所有头部信息,并根据配置的端口设置验证它们(除非测试指示符设置为 Test Data)。然后,端口解析文档中使用的特定 X12 Schema,并从磁盘上的 x12_schemas 文件夹加载 Schema(其他 Schema 文件可从官网免费下载)。使用该 Schema,端口生成表示文档 X12 结构的 XML,使用文档中的值填充 XML,并以 XML 注释或 XML 元素属性(基于生成描述为的值)的形式为每个值提供上下文。 要使用一组测试 X12 文档查看此过程,请导航到 X12 端口的交易选项卡(将转换类型设置为 X12 转换为 XML)并选择更多 > 创建测试文件。发票、采购订单、采购订单确认和发货通知的 X12 文档会自动生成并放置在交易目录中。端口处理这些测试文件后,导航到交易选项卡以查看生成的 XML。 一旦 X12 报文被转换成 XML,数据就可以通过多种方式进行转换和操作。通常,X12 数据需要存储在数据库或其他后端应用系统中。因为 使用 XML 来表示这些后端系统中的插入,所以存储 X12 数据就变成了简单地将一个 XML 结构映射到另一个 XML 的问题。通常是用可视化设计器驱动 XML Map 端口

XML 转换为 X12

转换类型设置为 XML 转换为 X12 指示端口根据文档的 XML 表示形式生成 X12 文档。端口根据从 XML 解析的数据构建 X12 消息后,会根据配置的端口设置添加功能组和交换头部。 要使用一组测试 XML 文件查看此过程,请导航到 X12 端口的交易选项卡(将转换类型设置为 XML 转换为 X12)并选择更多 > 创建测试文件。发票、采购订单、采购订单确认和发货通知的 XML 文件将自动生成并放置在交易目录中。端口处理这些测试文件后,导航到交易选项卡以查看生成的 X12 文档。

打印视图

与 XML Map 端口配合使用

上传测试文件

X12 ACK

以下章节详细介绍了三种 X12 ACK,以及 期待、处理和生成 ACK 的方式。

交换 ACK、997 和 999

TA1 是一种普遍接受的交换确认形式。这表明双方之间已经发生了数据交换,尽管不一定交换了具体报文。这作为接收方发给发件人的收据,表明接收方已成功收到 EDI 消息,但未指定在处理消息内容时是否存在任何问题。 997(版本 4010)、997(版本 5010)或 999 确认被视为功能性 ACK,即单个消息(例如发票或采购订单)已被接受的确认。这些是根据双方的双向协议生成的。

期待 ACK、处理 ACK 和生成 ACK

期待 ACK

X12 端口在 XML 转换为 X12 模式下运行时,可以进行配置,以便可以要求交换和功能确认。在”设置”选项卡的 ACK 部分中选中 TA1 ACK功能 ACK 时,端口将保持传输的”Pending ACK”状态,直到返回并处理相应的 ACK。这意味着端口状态可用于确定收件人是否已确认他们收到了交换。 下图显示了从发票文档期待 ACK 时涉及的逻辑流程: 接收 X12 ACK 上图中,以 XML 转换为 X12 模式运行的 X12 端口生成要交换的文档 (1),在文档传输到交易伙伴时保持为 Pending ACK 状态。交易伙伴根据其业务逻辑处理传输,并根据配置的交换参数创建确认 (2)。当确认返回后,将根据下一部分 (3) 中的信息进行处理。

处理 ACK

在典型的工作流中,X12 ACK 将到达以 X12 转换为 XML 模式运行的 X12 端口。可以将该 X12 端口配置为自动将所有收到的 ACK 路由到最初生成被确认文档的 X12 端口。在画布上,可以通过将 X12 转换为 XML 模式下 X12 端口底部的灰色点拖动到 XML 转换为 X12 模式下的 X12 端口上,来可视化配置 X12 端口之间的 ACK 路由。 一旦 XML 转换为 X12 模式下的 X12 端口接收到路由的 ACK,会将 ACK 与原始消息进行匹配,并将其状态从 “Pending ACK” 更新为 “Sent”。

生成 ACK

当处于 X12 转换为 XML 模式的 X12 端口收到一条消息并生成相应的 XML 时,它可以自动为收到的消息生成确认。为此,请在”设置”选项卡的 ACK 部分中启用 TA1 ACK 和/或Functional ACK expected。必须将这些确认路由到另一个 X12 端口(处于 XML 转换为 X12 模式)以最终确定 ACK。ACK 路由到的端口将应用交换头部,并将 ACK 传递到工作流中的下一个端口,就像其他 X12 消息一样。要适当路由 ACK,请将 X12 转换为 XML 模式下 X12 端口底部边缘的灰色点拖动到 XML 转换为 X12 模式下的 X12 端口上。 下图显示了为收到的发票文档创建 ACK 时涉及的逻辑流程: 创建 X12 ACK 如上图所示,在交易伙伴发送了一条要求确认的消息后 (1),X12 转换为 XML 模式下的 X12 端口解析文档会自动生成一个 ACK (2)。该 ACK 是一个 XML 文件,其中包含与交易相关的事务信息。然后,此 XML ACK 将以 XML 转换为 X12 模式 (3) 路由至 X12 端口,以便在将 ACK 发送至交易伙伴之前使用交换头部(和其他 EDI 方协议设置)。

主从层次结构:转换 HLLoop

在 EDI 文档中,大多数层次结构关系由 EDI 段的顺序表示。但一些 EDI 结构,例如 HLLoop(见于_预先装运通知_或 X12 856s 中)不遵循此约定,而是将层次结构关系嵌入到 EDI 元素数据本身中,这使得将 EDI 数据转换为 XML 时保留这些层次关系变得困难。 X12 端口通过高级选项卡高级设置中的嵌套主从细节循环设置支持在 HLLoop 中保留层次结构关系。启用后,端口将解析 HLLoop 段中的元素,以确定哪些段”属于”层次关系中的其他段。这些层次结构关系在输出的 XML 中反映为”父子关系”。换句话说,此设置将 EDI 内容隐含的层次结构转换为 XML 结构表示的层次结构。 本节将简要说明如何在 HLLoop 数据中编码层次结构,以及在启用嵌套主从细节循环时如何将此层次结构转换为 XML。

HLLoop 层次结构

所有 HL 段均具有两个有助于建立层次结构的值:
  • ID 值,它标识当前的 HL 段(此值存储在 HL01 或 HL 段中的第一个元素中)
  • 父 ID 值,标识当前 HL 段的层次结构父级(此值存储在 HL02 或 HL 段中的第二个元素中)
例如,假设 HL 段的 ID 值为 ‘2’。如果下一个 HL 段以分层关系”属于”该段,则下一个 HL 段的父 ID 应为 “2”。 如果 HL 段的父 ID 为 “0”,则表示该段没有父级(即位于层次结构的顶层)。

HLLoop 示例

为了进一步阐明 HLLoop 数据中的层次结构关系,请使用以下 EDI 代码段作为样本输入(仅以 HL 开头的行与确定数据层次结构相关;其余段被包括在内以更紧密地代表实际的 EDI 数据):
在此数据中,第二个 HL 段以分层关系”属于”第一个 HL 段。可以通过查看以下段的 HL01 和 HL02 的值来确定:
  • 第一个 HL 段的 HL01(ID)的值为 “1”
  • 第二个 HL 段的 HL02(父 ID)的值也为 “1”
将父 ID 值与 ID 值进行匹配相同的过程可用于确定数据中的所有层次关系。

将 HLLoop 层次结构转换为 XML

启用嵌套主从细节循环时,X12 端口会自动处理 HL 层次结构到 XML 层次结构的转换。端口从 EDI 输入中解析 HL01 和 HL02 元素值,并确保 XML 元素正确嵌套(缩进)在代表其父元素的元素内。 查看 HL 层次结构如何转换为 XML 层次结构,启用嵌套主从细节循环时,将从上面的示例 HL 数据生成以下 XML 输出:
快速辨别差异有一定难度,但需要注意的关键是,HLLoop 段包含在其他段中(即,在 XML 中具有父子关系),这与原始 HL01 和 HL02 的值一致。

示例

X12 操作

除了 提供的操作之外,端口还可以提供将功能扩展到 Script 中的操作。这些端口操作可以像任何其他 Script 操作一样调用,但必须通过 connector.rsc 端点调用,并且必须包含身份验证令牌。 下面列出了 X12 端口特定功能的操作。

x12Scan

从 X12 文档的标题中扫描标题值。

必须的参数

  • file:X12 文件的路径。

可选的参数

  • format:文件格式。默认值为 ‘X12’。

输出属性

  • InterchangeSenderIdQualifier:发送方 ID(ISA05)限定符。
  • InterchangeSenderId:发送方 ID(ISA06)。
  • InterchangeReceiverIdQualifier:接收方 ID(ISA07)限定符。
  • InterchangeReceiverId:接收方 ID(ISA08)。
  • InterchangeControlNumber:唯一标识 EDI 交换的值(ISA13)。
  • FunctionalGroupSenderId:功能组配置中发送方 ID(GS02)。
  • FunctionalGroupReceiverId:功能组配置中接收方 ID(GS03)。
  • DocumentType:文件类型或交易集标识符代码(ST01)。
  • StandardVersion:此交换中使用的 X12 标准的主要版本(例如 00401、00501)。

常见错误

以下列出了常见错误,以及原因和建议的解决方案。

错误:找不到 Schema 文件([schema 主要版本] [schema 文档类型])

原因 解析 X12 文件时,首先在文件中扫描 EDI 版本和文档类型,以确定在解析过程中使用哪种 Schema。该应用程序包含一组广泛的 JSON 格式的 X12 Schema,存储在应用程序目录的 schemas 文件夹中(紧邻 data 文件夹)。 此错误表明应用程序找不到与文件报告的主要版本和文档类型相匹配的 Schema 文件。 如果错误消息中缺少 [schema major version] 值或 [schema document type] 值,则表明 EDI 文档不包含主要版本或文档类型。 否则,这表明 随附的 Schema 定义集中未包含相应的 Schema。 解决 如果 EDI 文件不包含 Schema 主版本或文档类型,请与交易伙伴(或 EDI 文档的其他来源)联系,告知他们这些值必须包含在消息头部中。 否则,请从免费下载页面获取合适的 Schema 版本。下载 Schema 文件夹并将其放置在以下位置之一:
  1. 在磁盘上的 Schema 文件夹内(例如 <ConnectorDirectory>/Resources/Schemas/
  2. 如果一个 Schema 被多个端口使用,建议使用如下文件夹结构:<ApplicationDirectory>/schemas/<type>_schemas/<major version>。在此示例中,<type> 应为 x12

错误:第 [line number] 行中标记为 [segment name] 的段在指定 Schema([schema 主要版本] [schema 文档类型])中不处于有效位置。这可能表示输入文件包含顺序错误的段。

原因 解析 X12 文件时,首先在文件中扫描 EDI 版本和文档类型,以确定在解析过程中使用哪种 Schema。该应用程序包含一组广泛的 JSON 格式的 X12 Schema,存储在根安装目录的 www\app_data 文件夹中。 此错误表明解析器在文件中遇到的 EDI 段与相关文档 Schema 中定义的段的顺序不匹配。这可能表明几个不同的问题:
  • 交易伙伴生成的 EDI 文件有误
  • EDI 文件由不同于文件中指示的 Schema 版本生成
  • EDI 文件由自定义 Schema 生成
解决 如果 EDI 文件由自定义 Schema 生成,请将自定义 Schema 文件(JSON 格式)放在 读取 EDI Schema 的文件夹中。端口通过按顺序检查以下位置来搜索 Schema:
  1. 在磁盘上的 Schema 文件夹内(例如 <ConnectorDirectory>/Resources/Schemas/
  2. 如果一个 Schema 被多个端口使用,建议使用如下文件夹结构:<ApplicationDirectory>/schemas/<type>_schemas/<major version>。在此示例中,<type> 应为 x12
如果 EDI 文件不是由自定义 Schema 生成的,则有两种方法可以解决交易伙伴生成的 EDI 文件与用于解析该文件的 EDI Schema 之间的差异。
  1. 手动编辑适当的 EDI Schema 文件(在上面的文件路径中找到),以调整段顺序,使其与交易伙伴的 EDI 文件匹配。错误消息指示文件中段与 Schema 定义不同的行。跟踪段顺序的 JSON 定义,直到找到差异为止,然后对 JSON 中的段重新排序以匹配交易伙伴提供的文件。
  2. 与交易伙伴联系了解 EDI 文件情况。确认文件是根据文件中报告的主要版本生成的,并说明未识别文件中段的顺序。
使用哪种方法取决于对特定文档类型的 EDI 段的熟悉程度(根据交易伙伴的文件正确编辑 JSON Schema)和交易伙伴的灵活性(调整 EDI 文件以响应有关错误的信息)。