BizTalk Server 中 EDI 处理

本主题概述了 EDI 消息的接收端和发送端处理过程,以及贸易合作伙伴协议如何帮助实现 EDI 消息。

用于 EDI 处理的贸易合作伙伴协议

贸易合作伙伴协议在 BizTalk Server 的 EDI 支持中起着重要作用。 与 BizTalk Server 中的 EDI 处理相关的大多数配置和管理功能通过配置业务配置文件之间的贸易合作伙伴协议来执行。 协议集中了处理各种属性(来自合作伙伴双方的特定业务配置文件)的常见双向消息。 协议基于为每个业务配置文件定义的协议设置构建。 可通过为将交换消息的每个业务配置文件定义属性来实现两个业务配置文件之间的贸易合作伙伴协议。 可为每个作为交换接收方的业务配置文件以及作为交换发送方的业务配置文件设置属性。 若要处理传入消息或生成传出消息,BizTalk Server 需要了解它解析到的协议以及应用于该消息的架构。 如果 BizTalk Server 无法确定协议,它将使用在 TPM 接口中为备用贸易合作伙伴协议定义的属性。

TPM 中有两组主要的编码协议设置:一组用于 EDIFACT 属性,另一组用于 X12 属性。 这两组属性是紧密并行的。 有关协议设置的详细信息,请参阅协议设置。 有关协议的详细信息,请参阅 贸易合作伙伴协议。 可在贸易合作伙伴管理 (TPM) 用户界面中设置协议设置和贸易合作伙伴协议。 TPM 屏幕位于 BizTalk Server 管理控制台的 "参与方" 节点中。 你不必是开发人员即可在 BizTalk Server 中配置 EDI 处理。

有关贸易合作伙伴协议如何帮助进行 EDI 处理的详细信息,请参阅 Edi 处理中协议的角色

EDI Receive-Side 处理

BizTalk Server 收到 edi 消息时,它会在 edi 接收管道中处理该消息。 接收管道执行以下基本处理:

  • 贸易合作伙伴协议查找和架构确定。

    注意

    在以前版本的 BizTalk Server 中,一个参与方定义也包含协议定义。 因此,当接收管道查找参与方属性时,它将从内部查找参与方定义中的协议定义,然后相应地处理这些消息。 BizTalk Server,因为 (或贸易合作伙伴) 与贸易合作伙伴协议不同,所以接收管道专门查找贸易合作伙伴协议。

    注意

    如果禁用某个消息解析到的所有协议,则该消息将被挂起。 还会在“事件”日志中记录警告。

  • 如果单个 EDI 消息包含多个交换,则拆分交换并分别处理每个交换 (如果启用) 。 有关详细信息,请参阅 启用单个消息中的多个交换的接收

  • 解析每个 EDI 交换,同时将 X12 编码数据或 EDIFACT 编码数据转换为 XML 文档。

  • 根据 EDI 标准、合作伙伴协议和消息架构验证信封及其消息。

  • 如果交换为批处理交换,则可以拆分该批处理交换,同时为每个事务集创建 XML 文件并升级批处理所需的属性;或者保留该交换。

  • 生成确认。

  • 将 EDI 信封转换为上下文属性,并升级用于 EDI 处理的其他属性。

  • 升级用于控制批处理的属性。 执行此操作可能会将解除批处理后的事务集发送给多个参与方。

    以下是您在使用 EDI 接收端处理时必须考虑的一些注意事项:

  • 接收位置可以使用任何类型的传输类型。

  • 有关 edi 接收端处理的详细信息,请参阅BizTalk Server 如何接收 edi 消息

  • 有关由接收管道中的 EDI 拆装器执行的特定处理的详细信息,请参阅 Edi 拆装器的工作原理。

EDI 批处理

如果传入消息为一批消息,则 EDI 接收管道会将该批处理交换拆分为其组成事务集,或保留该批处理交换,具体取决于配置。 EDIReceive 管道会使用 BatchMarker 管道组件将任何要进行批处理的交换路由至批处理业务流程或路由业务流程。

在接收端处理之后,要进行批处理以备发送的事务集将由批处理业务流程进行处理。 批处理业务流程将基于筛选条件、激活范围和发布条件创建批。

如果未经过批处理的 EDI 事务集需要发送给多个批,则路由业务流程将处理该事务集。 将为每个匹配的批处理创建该事务集的副本。

有关在批处理中执行的特定处理的详细信息,请参阅 处理传入的批处理批处理传出的 EDI 消息

EDI Send-Side 处理

当 BizTalk Server 生成并发送传出 edi 消息时,它会在 EDI 发送管道中处理该消息。 发送管道执行以下处理:

  • 贸易合作伙伴协议查找和架构确定。

    注意

    在以前版本的 BizTalk Server 中,一个参与方定义也包含协议定义。 因此,当发送管道查找参与方属性时,它将从内部查找参与方定义中的协议定义,然后相应地处理这些消息。 对于 BizTalk Server,由于参与方 (或贸易合作伙伴) 不同于贸易合作伙伴协议,因此发送管道专门查找贸易合作伙伴协议。

    注意

    如果禁用某个消息解析到的所有协议,则该消息将被挂起。 还会在“事件”日志中记录警告。

  • 序列化 EDI 消息,同时将 XML 文档转换为 X12 编码数据或 EDIFACT 编码数据。

  • 如果消息数据包含还用作为 X12 分隔符的字符,则可以将发送管道配置为使用其他字符替换负载中的字符。

  • 如果 EDI 消息为批处理交换,则发送管道会在批处理业务流程生成批之后从 BizTalk MessageBox 提取该交换。

  • 验证传出消息。

  • 根据参与方属性或运行时指定的 EDI 信封属性创建 EDI 信封。

  • 处理收到的确认。

    以下是在使用 EDI 发送端处理期间必须考虑的一些注意事项:

  • 发送端口可以使用任何传输类型。

  • 有关 edi 发送端处理的详细信息,请参阅如何 BizTalk Server 发送 edi 消息

  • 有关在发送管道中执行的特定处理的详细信息,请参阅 EDI 汇编程序的工作原理

另请参阅

BizTalk Server 中的 EDI 支持
EDI 支持问题
协议在 EDI 处理中的角色
BizTalk Server 如何接收 EDI 消息
BizTalk Server 如何发送 EDI 消息
开发和配置 BizTalk Server EDI 解决方案