教程 3:AS2 教程

在本教程中,你将设置一个通过 HTTP 传输接收和发送 EDIINT/AS2 编码消息的解决方案。

教程解决方案的工作方式

该解决方案将执行以下操作:

  • 从合作伙伴接收 AS2 消息 (Fabrikam)

  • 向合作伙伴异步返回一个 MDN 响应。

  • 处理 AS2 消息的 EDI 负载

  • 通过 AS2 向合作伙伴 (Fabrikam) 返回一个 997 确认。

  • 将包含 EDI 消息负载的 XML 文件路由到本组织 (Contoso) 的后端应用程序。

    注意

    此解决方案不使用签名或加密来帮助确保 AS2 消息的安全性。

    教程组件

    此解决方案将使用以下各项:

  • BTS Http 接收 ISAPI 筛选器,用于从发送方 (/Contoso/BTSHTTPReceive.dll) 接收 AS2/EDI 消息。

  • 通过返回 997 确认和 MDN (http://localhost/Fabrikam/Default.aspx) 来模拟合作伙伴的 ASPX 网页。

  • 将用于部署 864 架构和其他架构的项目文件, (Schemas.btproj) 。

  • 一个单向 HTTP 接收位置,用于接收 EDI 文件 (Receive_AS2) 。 此接收位置使用默认的 AS2EdiReceive 管道,该管道包含 AS2 解码器和 EDI 拆装器。

  • 一个动态 HTTP 发送端口,用于返回异步 MDN (Send_Async_MDN) 。 此发送端口使用包含 AS2 编码器的 AS2Send 管道。

  • 静态单向文件发送端口,用于将 XML 文件中的 EDI 有效负载路由到后端文件夹 (Send_Payload_EdiXml) 。 此发送端口使用 PassThruTransmit 发送管道。

  • 静态单向 HTTP 发送端口,用于通过 AS2 向合作伙伴返回 997 确认, (Send_Async_997) 。 此发送端口使用包括 AS2 编码器的 AS2Send 管道,但无需 EDI 组装器。

  • 一个项目文件,用于生成应用程序,以将 EDI 文件从 Fabrikam 合作伙伴发送到 BizTalk (Sender.csproj) 。

    消息流

    在完成的解决方案中,消息的流动过程如下图所示:

    AS2 教程消息流

    教程组件按以下方式处理消息:

  1. 使用 sender.exe 应用程序将原始 EDI/AS2 消息从合作伙伴 Fabrikam 发送到BizTalk Server计算机。 Sender.exe 将 EDI/AS2 消息发送到 Contoso 虚拟目录。

    注意

    此列表中的事件可能不会按所示顺序发生。

    测试消息是 \Program Files\Microsoft BizTalk Server 20xx\SDK\AS2 Tutorial 中的 X12_00401_864.edi。

  2. Receive_AS2单向接收位置使用 BTSHTTPReceive.dll ISAPI 扩展从 Contoso 虚拟目录选取文件,接收来自 Fabrikam 的 EDI 消息。 接收管道将解码 AS2 消息、拆装 EDI 交换,然后将该消息 XML 放入 MessageBox。

  3. 接收管道为 AS2 消息生成一个 MDN,由于 MDN 设置为异步,因此,接收管道将把该 MDN 放入 MessageBox。

  4. 接收管道生成一个 997 确认以响应 EDI 交换,然后将该 997 消息放入 MessageBox。

  5. Send_Payload_EdiXml静态单向发送端口从 MessageBox 中选取 EDI 有效负载,在 BTS 上进行筛选。MessageType 上下文属性。

  6. 负载发送端口将包含 EDI 负载的 XML 文件发送到后端 Contoso 应用程序(由 \_EDIXMLToContoso 文件夹代表)。 此发送端口使用 PassThruTransmit 发送管道。

  7. Send_Async_MDN动态发送端口从 MessageBox 选取异步 MDN,根据 EdiIntAS.IsAS2AsynchronousMdn 上下文属性进行筛选。

  8. MDN 发送端口返回 MDN 并将其保存到 \_MDNToFabrikam 文件夹。 由于这是动态发送端口,因此它将使用邮件头 () http://localhost/Fabrikam/Default.aspx?Destination=_MDNToFabrikam 的 Receipt-Delivery-Option 行中的地址将邮件路由到 \_MDNToFabrikam 文件夹。

  9. Send_Async_997发送端口从 MessageBox 中选取 997,在 BTS 上进行筛选。MessageType 上下文属性。

  10. 997 发送端口使用 HTTP 传输将 EdiReceive 接收管道生成的 997 消息发送到 \_997ToFabrikam 文件夹。 发送端口使用 URI http://localhost/Fabrikam/Default.aspx?Destination=_997ToFabrikam将消息发送到 Fabrikam default.aspx 页。 default.aspx 页随后将 997 发送到 \_997ToFabrikam 文件夹。

    开始学习本教程之前,应了解以下内容:

  • BizTalk Server 管道和管道组件

  • HTTP 适配器

  • 接收端口和位置

  • 发送端口

本节内容

另请参阅

BizTalk Server 教程