EANCOM 端口

Version 24.2.9039


EANCOM 端口


EANCOM 端口支持从 XML 生成 EANCOM 文件(也称为 GS1 文件)和将 EANCOM 文件转换为 XML。

概览

接收到 EANCOM 文件时,EANCOM 端口会验证交换头部并将 EANCOM 文件转换为 XML。初始的这步非常有用,因为 XML 是知行之桥用于处理数据流中数据的主要格式。EANCOM 端口自动读取输入文件,确定正确的结构后,根据该结构解析文件。

生成 EANCOM 文件时,EANCOM 端口将 XML 转换为符合语法并带有交换头配置的 EANCOM 文件。在获取 XML 数据后会将其转换到数据流中的其它端口,这对于创建 EANCOM 文件的后续步骤很有用。

端口配置

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

设置

转换配置

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

  • 端口 Id 端口的静态、唯一标识符。
  • 端口类型 显示端口类型及其用途的描述。
  • 端口描述 一个可选字段,用于提供端口及其在流中的角色的自由格式描述。
  • 转换类型 端口是将 EANCOM 文件转换为 XML 还是从 XML 生成 EANCOM 文件。

交换头配置

与 EANCOM 交换头部有关的设置。将 EANCOM 文件转换为 XML 时,将根据这里的设置验证文件头部。将 XML 生成 EANCOM 文件时,这些设置将用于生成文件头部。

  • 语法标识符 (UNB1.1) 标识 EANCOM 文件使用的字符集。
  • 语法版本 (UNB1.2)语法标识符 结合使用确定 EANCOM 文件中使用的语法。交换设置中的可用元素可能会根据此值变化。
  • 发送方标识 (UNB2.1) 在 EANCOM 通信中标识发送方的唯一 ID(在生成 EANCOM 文件时,这应该是你的标识)。
  • 发送方代码限定符 (UNB2.2) 发送方标识限定符,提供了该值的上下文(比如,EAN 位置编号)。
  • 接收方标识 (UNB3.1) 在 EANCOM 通信中标识接收方的唯一ID(在生成 EANCOM 文件时,这应该是你伙伴额标识)。
  • 接收方限定符 (UNB3.2) 接收方标识的限定符, 提供了该值的上下文 (比如,EAN 位置编码)。
  • 测试指示器 (UNB11) 交换处于测试模式还是生产模式。如果在接收文档时启用此设置,则将不验证交换头。
  • 测试指示器(UNB11) 交换处于测试模式还是生产模式。 如果选中此选项,则在收到文档时不会验证交换头。
  • 功能组 选中此选项可自动将发件人和收件人标识符添加到 高级 选项卡上的 功能组设置

请求确认

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

  • 请求技术性 ACK(CONTRL) 是否接收时返回并在发送时请求技术 CONTRL 确认。技术确认是交换的凭证。
  • 请求功能性 ACK(CONTRL) 是否接收时返回并在发送时请求功能性 CONTRL 确认。功能性确认标识接收或者拒绝收到的交换。

自动化

自动化设置

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

  • 发送 切换后,端口将在文件准备好时自动发送文件。
  • 重发间隔 端口在重新发送收到否定 ACK 的文件之前等待的时间间隔。 例如,如果交易伙伴收到文件但出现问题并且发回否定 ACK,则此设置指定再次发送文件之前等待的时间。
  • 最大次数(异步) 当请求功能性 ACK 时,端口处理输入文件的最大次数。 成功取决于在重发间隔内返回功能性 ACK。 如果未返回成功的功能 ACK,端口将重新发送文件,直到达到最大次数。 如果将此设置为 0,端口将无限期地重新发送文件。

性能

与端口资源分配相关的设置。

  • 最大线程数 从线程池中消耗用于处理此端口上的文件的最大工作线程数。 如果设置,这将覆盖 设置 > 自动化 页面上的默认设置。
  • 最大文件数 分配给端口的每个线程发送的最大文件数。 如果设置,这将覆盖 设置 > 自动化 页面上的默认设置。

通知

与配置警报和服务等级协议 (SLA) 相关的设置。

端口邮件设置

在执行 SLA 之前,需要设置电子邮件警报以获取通知。 单击 配置通知 将打开一个新的浏览器窗口,转到 系统设置,可以在其中设置系统范围的警报。 有关详细信息,请参阅通知

服务等级协议 (SLA) 配置

SLA 能够配置期望工作流中的端口发送或接收的数量,并设置期望满足该数量的时间范围。 知行之桥在不满足 SLA 时发送电子邮件警告用户,并将 SLA 标记为 有风险,这意味着如果很快不满足 SLA,则会将其标记为 已违反。 这使用户有机会介入并确定未满足 SLA 的原因,并采取适当的措施。 如果在风险时间段结束时仍未满足 SLA,则将 SLA 标记为违反,并再次通知用户。

要定义 SLA,请单击 添加预期数量条件

  • 如果端口具有单独的发送和接收操作,请使用单选按钮指定 SLA 所属的方向。
  • 期待至少 设置为期望处理的最小交易数量(交易量),然后使用 字段指定时间范围。
  • 默认情况下,SLA 每天都有效。 要更改此设置,请取消选中每日,然后选中想要的一周中的几天的框。
  • 使用 将状态设置为“有风险” 来指示何时应将 SLA 标记为存在风险。
  • 默认情况下,在违反 SLA 之前不会发送通知。 要更改此设置,请选中 发送“有风险”通知

以下示例显示为预计周一至周五每天接收 1000 个文件的端口配置的 SLA。 如果尚未收到 1000 个文件,则会在该时间段结束前 1 小时发送风险通知。

高级设置

EDI 分隔符

指定了段,元素等的分隔设置。

  • 数据元素分隔符 分隔文档中各个数据元素的字符。
  • 组件元素分隔符 分隔文件中复合数据结构内元素的字符。
  • 段终止符 指示文件中段结尾的字符。
  • 转义字符 “释放”或“转义”下一个字符的字符,覆盖其通常的含义。只要保留字符前面带有版本字符,它就可以将它们与数据一起显示在文档中。
  • 重复元素分隔符 标识元素值重复的字段。
  • 后缀 追加到段终止符 后,区分多个段。

交换头配置

与 EANCOM 交换消息头相关的其他设置。 这些选项的显示或消失取决于“设置”选项卡上指定的 语法版本

  • 服务代码列表目录版本号 (UNB1.3) 进一步指定 EANCOM 文件中使用的语法。仅适用于 EANCOM 语法版本 4.
  • 字符编码 (UNB1.4) 指定字符的编码方式(例如 ASCII, UTF-8)。仅适用于 EANCOM 语法版本 4.
  • 反向路由地址 (UNB2.3) 交互响应应该发送到的发送方系统内的可选地址。仅适用于低于版本 4 的 EANCOM 语法版本。
  • 发送方内部ID (UNB2.3) 一个附加的发送方标识符,可以促进内部的响应交换路由。仅适用于 EANCOM 语法版本 4。
  • 发送方内部子标识 (UNB2.4) 在需要子级别标识时进一步标识发送方。仅适用于 EANCOM 语法版本 4。
  • 路由地址 (UNB3.3) 应将交换路由发送到的接收方系统内的可选地址。仅适用于低于版本 4 的 EANCOM 语法版本。
  • 接收方内部ID (UNB3.3) 一个附加的接收方标识,用以促进接收到的交换内部路由。仅适用于 EANCOM 语法版本 4。
  • 接收方内部子标识 (UNB3.4) 当需要子级别标识时,进一步标识接收方。仅适用于 EANCOM 语法版本 4。
  • 接收方密码 (UNB6.1) 访问接收方系统时的密码或证明。
  • 接收方密码限定符 (UNB6.2) 提供接收方密码上下文的限定符。
  • 应用参考编号 (UNB7) 标识交换中的消息所涉及的应用程序组。
  • 处理优先级代码 (UNB8) 请求交换的处理优先级代码。
  • 通信协议 (UNB10) 定义控制交换的通信协议的类型。

功能组配置

与 EANCOM 文档的功能组标题有关的设置。这些可选的标识符可以帮助将相似的交换分组在一起,或促进组织内的子地址。

  • 应用程序发送方标识 (UNG2.1) 标识发送文档的应用程序(例如部门,分支机构或计算机系统)。
  • 应用程序接收方标识 (UNG3.1) 标识文档所针对的应用程序。

高级设置

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

  • 批处理 一个交换可以包含多个事务。 如果未选中此选项,端口将为交换中的每个事务创建一个单独的输出文件。 选中后,端口会将所有事务分组到单个输出文件中。
  • 编码 指定字符编码(例如 ASCII 或 UTF-8)。
  • 扩展限定符值 选中后,包含 EDI 限定符的 XML 元素包括包含限定符代码和值的子元素。 例如:<N101><Code>ST</Code><Value>Ship To</Value></N101>.
  • 功能性 Ack 默认情况下,所有功能确认 (997、999) 都会路由到流程图中选择的端口,并且“输出”选项卡中不会接收 XML 转换。 选中此项以使翻译后的确认也包含在“输出”选项卡中。 除了新的 EDI 文档之外,这还允许将功能确认集成到目标源中。
  • 将描述生成为 将 EANCOM 转换为 XML 时,可以提供 EANCOM 段和元素的描述作为 EANCOM 数据的上下文。 使用此下拉列表可以选择是否将此上下文添加为 XML 注释或 XML 属性。
  • 本地文件名格式 用于为端口输出的消息分配文件名的方案。 可以在文件名中动态使用宏来包含标识符和时间戳等信息。 有关详细信息,请参阅
  • 嵌套循环 选中后,端口会检测 EDI 数据中嵌入了层次关系的 EDI 结构,并生成 XML,其中这些层次关系表示为父子关系。 有关详细信息,请参阅主从层次结构:转换 CPS 循环
  • 延迟处理 放置在输入文件夹中的文件的处理延迟的时间量(以秒为单位)。 这是一个遗留设置。 最佳实践是使用 File 端口 来管理本地文件系统,而不是此设置。
  • 严格模式验证 当检测到以下情况时,端口是否应忽略、警告或失败:重复计数超过允许的数量、缺少必需的元素或段、无效的限定符和代码值、不允许的元素长度以及无效的元素值。 选择“禁用”会关闭架构验证检查。
  • 跟踪 UNB2.1 是否将 UNB2.1 值作为跟踪消息头添加到已处理的消息中。
  • 跟踪 UNB3.1 是否将 UNB3.1 值作为跟踪消息头添加到已处理的消息中。
  • 跟踪事务类型 是否将事务类型作为跟踪消息头添加到已处理的消息中。
  • 验证标识符 检查此项以确保翻译文档中的标识符与端口配置中的标识符匹配。
  • 上传 Schema 使用此选项可上传架构并将其安装在端口的架构文件夹中。如果架构已存在,系统会询问您是否要覆盖它。
  • 重置状态 EDI 端口会跟踪已使用的控制编号并增加该编号以确保将来的运行不会重复数据。使用此按钮可将计数器重置为其初始状态,而无需更改任何配置的设置。

消息

  • 保存至 Sent 文件夹 选中此选项可将端口处理的文件复制到端口的已发送文件夹中。
  • 已发送文件夹方案 指示端口根据选定的时间间隔对已发送文件夹中的消息进行分组。 例如,Weekly 选项指示端口每周创建一个新的子文件夹,并将该周的所有消息存储在该文件夹中。 空白设置告诉端口将所有消息直接保存在“已发送”文件夹中。 对于处理许多消息的端口,使用子文件夹有助于保持消息的组织性并提高性能。

日志

  • 日志级别 端口生成的日志的详细程度。 当请求支持时,请将其设置为 Debug
  • 日志子文件夹方案 指端口根据选定的时间间隔对日志文件夹中的文件进行分组。 例如,Weekly 选项表示端口每周创建一个新子文件夹并将该周的所有日志存储在该文件夹中。 空白设置告诉端口将所有日志直接保存在 Logs 文件夹中。 对于处理大量事务的端口,使用子文件夹有助于保持日志井井有条并提高性能。
  • 保留消息副本 检查此项以使已处理文件的日志条目包含文件本身的副本。 如果禁用此功能,可能无法从 输入输出 选项卡下载文件的副本。

特殊设置

特殊设置 适用于特定用例。

  • 其他设置 允许在以分号分隔的列表中配置隐藏的端口设置,例如setting1=value1;setting2=value2。 正常的端口用例和功能不需要使用这些设置。

XML 转换为 EANCOM

生成 EANCOM 文件时,将转换类型选择为 XML 转换为 EANCOM。该应用程序从端口的设置页面的配置中读取交换设置,功能组和消息部分的所有表头信息。这些设置包括发送方 ID 和发送方限定符,接收方 ID 和接收方定符等等。

使用交易伙伴协议中的配置设置后,请点击 更多 > 创建测试文件。该应用程序创建各种测试 XML 文件,这些文件提供示例数据,该示例 XML 文件中的数据应该和端口生成的 EANCOM 中数据一致。也可以选择文档,然后单击发送以查看生成的 EANCOM 文档。

EANCOM 转换为 XML

生成 XML 时,将转换类型选择为 EANCOM 转换为 XML。选择此选项后,应用程序仅处理 EANCOM 文件。你需要在此页面上配置交易伙伴的设置,以便应用程序在处理过程中验证 EANCOM 文档中的信息。端口将生成的XML文件放到输出文件夹中。

点击输入选择更多 > 创建测试文件为多个 EANCOM 类型创建测试 EANCOM 文件。你可以选择这些文档,然后单击发送查看生成的 XML。

请求确认

确认将路由到工作流图中灰色虚线指定的端口,如下图所示:

指定的端口使用当前端口接收到的事务数据生成确认。 指定的端口添加交换消息头并像任何其他消息一样在流中传递确认。 因此,通常应将其设置为预配置的 EANCOM 端口,该端口为预期收件人生成出站文档。

请求确认可以由应用程序自动生成和处理。EANCOM 通信中通常使用两种确认的确认类型:交换和功能。两种确认类型都被分类为 EANCOM CONTRL 消息。

交换请求确认

这表明双方之间已经发生了交换(尽管不一定交换了任何单独的消息),并且该交换是响应交换中的请求而自动生成的。

功能性请求确认

功能确认表示已接受单个消息(如发票或订单)。这是由响应双方的双向协议而生成的。

消息发起者

要求回执

需要配置 XML 转换为 EDI 模式下的 EANCOM 端口,这样可以为消息处理请求交换和功能确认。选中端口设置标签中的请求技术性 ACK(CONTRL)请求功能性 ACK(CONTRL)复选框,以指示端口保持传输的待定 ACK 状态,直到相应的确认已被退回并处理。

Receiving ACKs

上图从消息创建者的角度显示了完整的消息交换。XML-转换为-EDI 模式下的 EANCOM 端口会生成要交换的文档 (1),并将其保持为等待 ACK 状态。交易伙伴按照其业务逻辑处理传输,并根据配置的交换参数和各方之间的双向协议 (2) 创建确认消息。返回确认后,将使用 EDI 转换为 XML 模式对它们进行解析和 EANCOM 端口,并将其路由到原始 EANCOM 端口(XML 转换为 EDI)以更新传输 (3) 的状态。

处理回执

当 EANCOM 端口以 EDI 到 XML 模式接收到交换和功能 EANCOM 确认时,该端口可以配置为自动将任何检测到的确认路由到首先生成传输的 EANCOM 端口。 在工作流中,将灰色圆圈从接收(EDI to XML)EANCOM 端口拖到原始(XML to EDI)EANCOM 端口上。

配置的(XML 到 EDI)EANCOM 端口将确认与原始消息配对并解析匹配的消息。

消息回执

生成回执

当处于 EDI 转换为 XML 模式的 EANCOM 端口处理从始发者接收到的消息并生成 XML 时,通过选择设置选项卡中的确认复选框,告诉端口需要自动生成 CONTRL 确认。将这些确认路由到 XML 转换为 EDI 模式的 EANCOM 端口,以生成 EANCOM 确认。在将 ACK 路由到端口菜单中,选择(XML 转换为 EDI)EANCOM 端口,该 EANCOM 端口为此伙伴生成 EANCOM 文件。

Generate ACKs

如上图所示,当合作伙伴发送期望确认的消息 (1) 时,为此伙伴配置的(EDI-to-XML)EANCOM 端口会自动生成确认 (2) 的 XML 文件,其中包含与该文件相关的交易信息。此XML确认必须路由回(XML-to-EDI)EANCOM 端口 (3),以便在生成发送回贸易伙伴的 EANCOM 文件时使用所有 EDI 方协议设置。

主从层次结构:转换 CPS 循环

在 EDI 文档中,大多数层次结构关系由 EDI 段的顺序表示。一些 EDI 结构(例如 DESADV 文档中的 CPS 循环)不遵循此约定,而是将层次关系嵌入到 EDI 元素数据本身中。当将 EDI 数据转换为 XML 时,保留这些层次关系变得困难。

EANCOM 端口通过“高级设置”选项卡中的嵌套循环设置,支持在 CPS 段中保留层次关系。启用后,端口将解析 CPS 段中的元素,以确定哪些段“属于”分层关系中的其它段。这些层次结构关系在输出 XML 中反映为“父子关系”。换句话说,此设置将 EDI 内容隐含的层次结构转换为 XML 结构表示的层次结构。

本节将简要说明如何在 CPS 数据中编码层次结构,以及在启用嵌套循环时如何将此层次结构转换为 XML。

CPS 层次结构

所有 CPS 段都有两个有助于建立层次结构的值:

  • 一个 ID 值,用于标识当前的 CPS 段(此值存储在 CPS01 或 CPS 段中的第一个元素中)
  • 父 ID 值,用于标识当前 CPS 段的分层父级(此值存储在 CPS02 中,或 CPS 段中的第二个元素中)

例如,假设 CPS 段的 ID 值为 “2”。如果下一个 CPS 段的分层关系“属于”该先前段,则下一个 CPS 段的父 ID 也应为 “2”。

如果 CPS 段的父ID为 “0”,则表示该段没有父级(即它位于层次结构的顶层)。

将 CPS 层次结构转换为 XML

启用“嵌套循环”时,EANCOM 端口会自动处理 CPS 层次结构到 XML 层次结构的转换。端口解析 CPS 段中的 ID 和父 ID 值,并确保将生成的 XML 元素适当嵌套(缩进)在代表其父元素的元素内。

换句话说,如果 segmentA 的父 ID 值等于 segmentB 的 ID 值,则生成的 XML 将具有 segmentA 作为 segmentB 的子级。这样,在转换 EDI 数据时,层次结构关系就保留在 XML 结构中。

在文件命名策略中使用宏可以提高组织效率和对数据的上下文理解。 通过将宏合并到文件名中,可以动态地包含相关信息,例如标识符、时间戳和消息头信息,从而为每个文件提供有价值的上下文。 这有助于确保文件名反映对组织重要的详细信息。

知行之桥 支持这些宏,它们都使用以下语法:%Macro%

描述
ConnectorID 替换为端口的 ConnectorID。
Ext 替换为端口当前正在处理的文件的文件扩展名。
Filename 替换为端口当前正在处理的文件的文件名(包括扩展名)。
FilenameNoExt 替换为端口当前正在处理的文件的文件名(不带扩展名)。
MessageId 计算端口输出的消息的 MessageId。
RegexFilename:pattern 将正则表达式模式应用于端口当前正在处理的文件的文件名。
Header:headername 替换为端口正在处理的当前消息的目标消息头 (headername) 的值。
LongDate 以常规格式计算系统的当前日期时间(例如,2024 年 1 月 24 日星期三)。
ShortDate 以 yyyy-MM-dd 格式计算系统的当前日期时间(例如 2024-01-24)。
DateFormat:format 以指定格式(format)计算系统的当前日期时间。 有关可用的日期时间格式,请参阅示例日期格式
Vault:vaultitem 计算指定保管库项目的值。

示例

某些宏(例如 %Ext% 和 %ShortDate%)不需要参数,但其他宏则需要。 所有带有参数的宏都使用以下语法:%Macro:argument%

以下是带有参数的宏的一些示例:

  • %Header:headername%:其中 headername 是消息上消息头的名称。
  • %Header:mycustomheader% 解析为输入消息上设置的 mycustomheader 消息头的值。
  • %Header:ponum% 解析为输入消息上设置的 ponum 消息头的值。
  • %RegexFilename:pattern%:其中“pattern”是正则表达式模式。 例如,%RegexFilename:^([\w][A-Za-z]+)% 匹配并解析为文件名中的第一个单词,并且不区分大小写(test_file.xml解析为test) 。
  • %Vault:vaultitem%:其中 vaultitemvault 中项目的名称。 例如,%Vault:companyname%解析为存储在保管库中的companyname项的值。
  • %DateFormat:format%:其中 format 是可接受的日期格式(有关详细信息,请参阅示例日期格式)。 例如,%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%解析为文件上的日期和时间戳。

还可以创建更复杂的宏,如以下示例所示:

  • 将多个宏组合在一个文件名中:%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%%EXT%
  • 包括宏之外的文本:MyFile_%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%
  • 在宏中包含文本: %DateFormat:'DateProcessed-'yyyy-MM-dd_'TimeProcessed-'HH-mm-ss%