通过 AS2 传出的 EDI 消息的发送端处理

通过 AS2 的 EDI 消息的发送方处理包括发送具有 EDI 有效负载的 AS2 消息,以及接收 MDN 和 EDI 确认 ((如果启用) )。

AS2EDISend 发送管道通过 HTTP/HTTPS 将汇编的 EDI/AS2 消息发送到接收贸易伙伴。 AS2EDIReceive 接收管道接收为响应 AS2 消息而返回的 MDN,以及响应 EDI 消息而返回的 EDI 确认。 其中每个管道都会处理 AS2 消息,并在 AS2 消息中处理 EDI 有效负载。 可以在 HTTP 双向请求响应发送端口或单向 HTTP 发送端口和单向 HTTP 接收端口中包含这些管道。

若要通过 AS2 发送 EDI 交换,BizTalk Server 将执行以下步骤:

  • 处理发送的 EDI 有效负载

  • 发送 AS2 消息

  • 接收返回的 MDN

  • 接收返回的 EDI 确认

处理发送的 EDI 有效负载

在创建 AS2 消息之前,AS2EdiSend 管道必须处理 EDI 交换。 如果启用了出站批处理,则将按照 组装批处理 EDI 交换中所述对事务集进行批处理。 EDI 汇编程序将创建 EDI 交换,如 EDI 汇编程序的工作原理中所述。

发送 AS2 消息

AS2 发送管道中的 AS2 编码器首先执行协议解析,以确定将要用于处理传出消息的协议属性。 有关详细信息,请参阅 传出 AS2 消息的协议解析

AS2 编码器可生成发送 AS2 消息所需的 HTTP 标头集。 它将这些标头添加到上下文属性, HTTP.UserHttpHeaders 该属性是标头值的单个字符串。 AS2 编码器在 中 HTTP.UserHttpHeaders生成以下 AS2 标头。 这些标头必须包含在 AS2 消息中。

  • AS2-To

  • AS2-From

  • AS2-Version

  • 消息 ID

  • OriginalMessageID(仅限 MDN)

    如果选中 “请求 MDN ”属性,管道会将消息中的 Disposition-Notification-To、Receipt-Delivery-Option 和 Signed-Receipt-MICalg AS2 标头设置为相应属性中的值;如果选中“请求签名的 MDN ”属性,它将 Signed-Receipt-Protocol AS2 标头设置为“pcks7-signature”。

    HTTP.UserHttpHeaders如果上下文属性不存在,AS2 编码器将创建它。 如果 HTTP.UserHttpHeaders 已存在,AS2 编码器将使用它,而不是创建它。 如果创建 HTTP.UserHttpHeaders,请向其写入标头,然后将其写入消息上下文,AS2 Encoder 将使用这些标头,它们将优先于来自其他源的标头。 但 AS2-From 标头是一个例外,它始终来自协议属性。

    如果 AS2 标头不在 中 HTTP.UserHttpHeaders,AS2 编码器将从单个上下文属性添加它。 这意味着,如果 AS2 标头尚未位于) 中,可以通过将 AS2 标头提升或写入消息 (的上下文来 HTTP.UserHttpHeaders 添加它们。 如果 AS2 标头既不在 中 HTTP.UserHttpHeaders,也不在上下文中作为属性存在,则 AS2 Encoder 会将它从协议属性添加到 中 HTTP.UserHttpHeaders

    AS2 Encoder 在 属性中 HTTP.UserHttpHeaders 生成标头后,它会将其写入消息的上下文。 HTTP 适配器选取 HTTP.UserHttpHeaders,并将标头 HTTP.UserHttpHeaders 值从 前面追加到消息中。

注意

AS2 传输仅用于 HTTP 适配器。 然而,如果您手动设置了相应的上下文属性,则可以使用 FILE 适配器传输 AS2 消息。 有关详细信息,请参阅 通过文件发送端口发送 AS2 消息

处理返回的 MDN

如果 MDN 已启用,则与双向发送端口相关联的接收管道将从接收 AS2 消息的参与方接收 MDN。

注意

有关 AS2 发送管道对传入 MDN 执行的处理的详细信息,请参阅 发送传出 MDN

处理返回的 EDI 确认

如果启用了 EDI 确认,则与双向发送端口关联的接收管道也会从 EDI 消息 (接收方接收 EDI 确认,因为它筛选 BizTalk EDI ACK 消息类型) 。 有关详细信息,请参阅 处理收到的确认

另请参阅

BizTalk Server 如何发送 AS2 消息