传出 EDI 消息的协议解析和架构确定

若要向贸易合作伙伴生成 EDI 消息,EDI 发送管道必须执行下列操作:

  • 确定消息解析为的协议

  • 确定用于验证消息的架构

协议解析

EDI 发送管道执行一系列步骤,确定传出交换和协议属性是否匹配,进而查找协议。 BizTalk Server确定协议后,将确定适用于交换的文档架构, (请参阅下面的) 。 它使用与匹配协议关联的属性及相关架构来生成并验证传出消息。

若要执行协议解析,BizTalk Server按如下所示进行:

  1. 通过将 AgreementPartIDForSend 上下文属性与单向协议的 ID 相匹配来解析协议。 此属性应为整数类型,可在自定义组件中设置;它不是由BizTalk Server设置的。

  2. 如果步骤 1 不成功,则通过将以下三个上下文属性与协议属性匹配来解决协议:AgreementNameForSend、SenderPartyNameForSend、ReceiverPartyNameForSend。 请注意,要成功解析为协议,这三个属性都必须要设置。 可以在自定义组件中设置这些属性;它不是由BizTalk Server设置的。

  3. 如果步骤 2 不成功,则通过将消息上下文属性中的参与方名称与 DestinationPartyName 属性匹配来解析协议,该属性在协议属性的“ 标识符 ”选项卡中设置为附加协议解析程序。

  4. 如果第 3 步不成功,则通过将消息上下文中的下列属性与协议属性中的这些属性进行匹配来解析协议:DestinationPartySenderIdentifier、DestinationPartySenderQualifier、DestinationPartyReceiverIdentifier 和 DestinationPartyReceiverQualifier。 请注意,要成功解析为协议,所有这四个属性都必须设置。 可以在自定义组件中设置这些属性;它们不是由BizTalk Server设置的。 有关详细信息,请参阅以下内容。

    注意

    如果上述任何一组上下文属性已升级,并且BizTalk Server找不到与这些上下文属性关联的协议,则BizTalk Server将暂停该消息。

    如果用户有意为协议解析编写一组上下文属性,并且解析程序无法识别 OnewayAgreement,则消息将暂停。 无法解析为基于一组上下文属性的协议时,EventLog 中会引发相应的警告消息。

  5. 如果步骤 4 没成功,或上述上下文属性均未升级,则通过将订阅该消息的发送端口与协议关联的发送端口进行匹配,EDI 消息会解析为一条协议。

    注意

    如果同一发送端口与多个协议关联,BizTalk Server 将生成错误。

  6. 如果在步骤 1、2、3 或 4 中找不到协议,则发送管道将使用备用协议设置生成传出消息。

    通过匹配发送方和接收方上下文属性进行协议解析

    在上面的第二步中,匹配中使用的四个上下文属性是 EDI。DestinationPartySenderIdentifier,EDI。DestinationPartySenderQualifier,EDI。DestinationPartyReceiverIdentifier 和 EDI。DestinationPartyReceiverQualifier。 这些上下文属性的命名空间为 http://schemas.microsoft.com/Edi/PropertySchema。 BizTalk Server尝试将这些值与单向协议属性中相关的发送方和接收方标识符以及限定符进行匹配。 对于 X12,这些字段是“协议属性”对话框中单向协议选项卡的“标识符”页中的 ISA05、ISA06、ISA07 和 ISA08;对于 EDIFACT,这些字段是“协议属性”对话框中单向协议选项卡的“标识符”页中的 UNB2.1、UNB2.2、UNB3.1 和 UNB3.2。

    若要使用所有四个发送方和接收方的标识符和限定符启用发送端协议解析,必须设置所有四个上下文属性。 以唯一方式执行此操作可标识协议。 使用上述协议查找方法可以更灵活地执行发送端处理。 例如,使用此方法可以避免在某些情况下创建多个发送端口,并避免复杂的发送端口筛选器。 同时,您还可以根据需要避免设置 OneWayAgreementId 属性。

    如果已为消息设置了所有四个上下文属性,并且找不到这些上下文属性与属性之间的匹配项,则消息将被挂起。 仅在尚未设置所有四个上下文属性时,才会使用与协议关联的发送端口解析该协议。

注意

EDI 管道中的消息将转到协议解析中的后续步骤,直到该消息在协议处于启用状态的情况下通过相应步骤得到解析。 例如,如果消息在协议解析的第一步中得到解析,但协议处于禁用状态,则消息将转到后续步骤进行解析。

架构确定

EDI 发送管道确定从每个事务集的中间 XML 文件中包含的架构名称和架构命名空间 (作为文档类型信息或在根节点) 中应用于消息的架构。

对于已保留的交换,发送管道使用中间 XML 文件的单个事务集中的文档类型信息来完成交换。 它使用控制段架构来处理信封段。

另请参阅

BizTalk Server 如何发送 EDI 消息