你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure 逻辑应用中的贸易合作伙伴之间以批或组的形式交换 EDI 消息

适用于:Azure 逻辑应用(消耗)

在企业到企业 (B2B) 方案中,合作伙伴通常以组或批的形式交换消息。 使用 Azure 逻辑应用生成批处理解决方案时,可将消息发送到参与方,然后以批的形式统一处理这些消息。 本文以 X12 为例,介绍如何通过创建“批发送方”逻辑应用和“批接收方”逻辑应用来批处理 EDI 消息。

批处理 X12 消息的方式与批处理其他消息的方式类似。 使用批处理触发器将消息收集到某个批中,然后使用批处理操作将消息发送到批。 此外,在消息转到参与方或其他目标之前,X12 批处理包含一个 X12 编码步骤。 有关批处理触发器和操作的详细信息,请参阅批处理消息

在本文中,我们将通过遵循以下特定顺序在同一个 Azure 订阅和 Azure 区域中创建两个逻辑应用,来生成批处理解决方案:

  • “批接收方”逻辑应用:接受消息并将其收集到批中,直到满足发布和处理这些消息的指定条件。 在此方案中,批接收方还会使用指定的 X12 协议或合作伙伴标识来编码批中的消息。

    请务必先创建批接收方,然后才能在创建批发送方时选择批处理目标。

  • “批发送方”逻辑应用工作流:将消息发送到前面创建的批接收方。

请确保批接收方和批发送方逻辑应用工作流使用同一个 Azure 订阅和 Azure 区域。 否则,在创建批发送方时无法选择批接收方,因为它们相互不可见。

先决条件

创建 X12 批接收方

在将消息发送到某个批之前,该批必须存在且充当这些消息要发送到的目标。 因此,首先必须创建可以通过“批处理”触发器启动的“批接收方”逻辑应用。 这样,在创建“批发送方”逻辑应用时,便可以选择批接收方逻辑应用。 批接收方会持续收集消息,直到满足发布和处理这些消息的指定条件。 尽管批接收方不需要知道有关批发送方的任何信息,但批发送方必须知道要将消息发送到的目标。

对于此批接收方,需指定批模式、名称、发布条件、X12 协议和其他设置。

  1. Azure 门户或 Visual Studio Code 中,创建名为“BatchX12Messages”的逻辑应用

  2. 将逻辑应用链接到集成帐户

  3. 在工作流设计器中,添加批触发器,这可启动逻辑应用工作流。

  4. 按照这些常规步骤添加名为“批处理消息”的批触发器

  5. 设置批接收方属性:

    properties 说明
    批处理模式 内联
    批名称 TestBatch 仅适用于“内联”批处理模式
    发布条件 基于消息计数、基于计划 仅适用于“内联”批处理模式
    消息计数 10 仅适用于“基于消息计数”发布条件
    间隔 10 仅适用于“基于计划”发布条件
    频率 minute 仅适用于“基于计划”发布条件

    提供批处理触发器详细信息

    注意

    本示例不会设置批的分区,因此每个批次使用相同的分区键。 若要详细了解分区,请参阅批处理消息

  6. 现在,添加一个用于编码每个批的操作:

    1. 按照这些常规步骤添加名为“批编码 <任意版本>”的 X12 操作

    2. 如果事先未连接到集成帐户,现在请创建连接。 提供连接的名称,选择集成帐户,然后选择“创建”。

      在批编码器与集成帐户之间创建连接

    3. 设置批编码器操作的以下属性:

      properties 说明
      X12 协议的名称 打开列表,并选择现有的协议。

      如果该列表为空,请确保将逻辑应用链接到包含所需协议的集成帐户

      BatchName 在此框中单击,显示动态内容列表后,选择“批名称”标记。
      PartitionName 在此框中单击,显示动态内容列表后,选择“分区名称”标记。
      关闭项详细信息,然后在此框中单击。 显示动态内容列表后,选择“已批处理的项”标记。

      “批编码”操作详细信息

      对于“项”框:

      “批编码”操作项

  7. 保存逻辑应用工作流。

  8. 如果使用 Visual Studio Code,请确保将批接收方逻辑应用部署到 Azure。 否则,在创建批发送方时无法选择批接收方。

测试工作流

为确保批接收方按预期方式工作,可以添加一个 HTTP 操作用于测试,并将批处理的消息发送到请求 Bin 服务

  1. 按照这些常规步骤添加名为 HTTP 的 HTTP 操作

  2. 为 HTTP 操作设置属性:

    properties 说明
    方法 在此列表中选择“POST”。
    Uri 生成请求 bin 的 URI,然后在此框中输入该 URI。
    正文 在此框中单击,动态内容列表打开后,选择“按协议名称进行批编码”部分显示的“正文”标记。

    如果未显示“正文”标记,请在“按协议名称进行批编码”旁边选择“查看更多”。

    提供 HTTP 操作详细信息

  3. 保存工作流。

    批接收方逻辑应用如以下示例所示:

    保存批接收方逻辑应用

创建 X12 批发送方

现在创建一个或逻辑应用,用于将消息发送到批接收方逻辑应用。 在每个批发送方中,指定批接收方逻辑应用和批名称、消息内容及其他任何设置。 可以选择提供唯一分区键以将批划分为子集,从而收集具有该键的消息。

  • 请确保已创建批接收方。 这样,在创建批发送方时,就可选择现有的批接收方作为目标批。 尽管批接收方不需要知道有关批发送方的任何信息,但批发送方必须知道要将消息发送到何处。

  • 请确保批接收方和批发送方逻辑应用工作流使用同一个 Azure 订阅和 Azure 区域。 否则,在创建批发送方时无法选择批接收方,因为它们相互不可见。

  1. 另外创建一个名为“SendX12MessagesToBatch”的逻辑应用

  2. 按照以下常规步骤添加名为“收到 HTTP 请求时”的请求触发器

  3. 若要添加将消息发送到批处理的操作,请按照这些常规步骤将名为“选择具有批触发器的逻辑应用工作流”的“将消息发送到批处理”操作

    1. 选择前面创建的 BatchX12Messages 逻辑应用。

    2. 选择名为“Batch_messages - <你的批接收方>”的 BatchX12Messages 操作。

  4. 设置批发送方的属性。

    properties 说明
    批名称 接收方逻辑应用定义的批名称,在本示例中为“TestBatch”

    重要说明:批名称在运行时将接受验证,必须与接收方逻辑应用指定的名称相匹配。 更改批名称会导致批发送方失败。

    消息内容 要发送的消息内容,在本示例中为“正文”标记

    设置批属性

  5. 保存工作流。

    批发送方逻辑应用如以下示例所示:

    保存批发送方逻辑应用

测试工作流

若要测试批处理解决方案,请使用 HTTP 请求工具及其说明将 X12 消息发布到批发送方逻辑应用工作流。 很快,请求 bin 中就会每隔 10 分钟或者以 10 个一批的形式接收 X12 消息,所有这些消息具有相同的分区键。

后续步骤