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

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

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

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

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

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

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

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

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

先决条件

创建 X12 批接收方

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

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

  1. Azure 门户、Visual Studio 或 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,请确保将批接收方逻辑应用部署到 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 消息,所有这些消息具有相同的分区键。

后续步骤