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 解决方案