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

在 Azure Logic Apps 中的贸易合作伙伴之间批量或分组交换 EDI 消息

适用于:Azure 逻辑应用(消耗型 + 标准型)

在企业到企业 (B2B) 方案中,合作伙伴通常以组或批的形式交换消息。 使用 Azure 逻辑应用生成批处理解决方案时,可将消息发送到参与方,然后以批的形式统一处理这些消息。

批量处理 X12 消息的工作方式与其他消息的批处理方式相同。 使用批处理触发器将消息收集到一个批次中。 使用批处理操作将消息发送到批处理任务中。 在发送消息给贸易合作伙伴或其他目的地之前,需要包括 X12 编码步骤。 有关详细信息,请参阅 发送、接收和批处理消息

本指南介绍如何通过创建两个逻辑应用、一个 批处理发送方 和一个 批处理接收器来生成处理电子数据交换(EDI)消息的批处理解决方案。 例如,此解决方案处理 X12 消息。

  • 批处理接收器将消息收集到批处理中,直到满足特定条件才能发布和处理这些消息。 此批接收方还使用指定的 X12 协议或合作伙伴标识对批中的消息进行编码。

    必须先创建批处理接收器作为批处理目标。 然后,可以在创建批发送方时选择批接收方。

  • 批处理发送方逻辑应用工作流将消息发送到以前创建的批处理接收方。

批接收方和批发送方必须使用相同的 Azure 订阅 Azure 区域。 否则,在创建批发送方时无法选择批接收方,因为它们相互不可见。

注意

在标准逻辑应用中,可以创建两个工作流作为批接收方和批发送方。 消费逻辑应用只有一个工作流,因此你必须创建两个逻辑应用。

Prerequisites

创建 X12 批接收方

在您发送消息到批处理之前,该批处理必须先作为目标批存在。 因此,首先创建批处理接收器,并使用 Batch 触发器启动工作流。 这样,在创建批发送方时,可以选择批接收方。

批处理接收器将收集消息,直到满足指定条件才能释放和处理这些消息。 批接收方不必知道批发送方,但批发送方必须知道消息的发送位置。

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

  2. 如果以前未将逻辑应用链接到集成帐户, 请立即链接逻辑应用

  3. 按照以下常规步骤添加名为 Batch trigger 的批量操作触发器

  4. 在设计器上,选择 Batch 触发器 以打开触发器信息窗格。

  5. 在信息窗格中,选择 Batch 触发器的名称。 将名称更改为 *批处理消息

  6. 在“ 参数 ”选项卡上,提供以下参数的值:

    参数 说明
    模式 内联IntegrationAccount 仅适用于消费工作流。
    批名称 < batch-name> 要使用的批处理名称。 此示例使用 TestBatch

    - 消耗工作流:仅在 模式内联时可用。 此示例使用 TestBatch
    - 标准工作流:始终可用。
    发布条件 - 基于消息计数
    - 基于大小
    - 基于计划
    要使用的发布条件类型。

    - 消耗工作流:仅在 模式内联时可用。
    - 标准工作流:始终可用。

    此示例使用 基于消息计数基于计划
    消息计数 < 整数> 仅当发布条件基于消息计数时可用。 指定要收集和释放的消息数。 此示例使用 10 作为值。
    间隔 < 整数> 仅当发布条件基于计划时可用。 指定重复周期的时间间隔数。 此示例使用 10 作为值。
    频率 < time-unit> 仅当发布条件基于计划时可用。 指定重复周期的时间单位。 此示例使用 Minute 作为值。

    屏幕截图显示了批处理消息触发器窗格,可在其中输入参数值。

    注意

    此示例未为批处理设置分区。 每个批处理使用相同的分区键。 有关分区的详细信息,请参阅 “创建批处理发送方”。

  7. 添加对每个批次进行编码的操作。

    1. 按照以下常规步骤添加名为“Batch encode any-version”的 X12 操作<>

    2. 如果事先未连接到集成帐户,现在请创建连接。

      1. 提供连接的名称。
      2. 提供 集成帐户 ID集成帐户 SAS URL 参数的值。
      3. 选择“新建”。

      屏幕截图显示了在批处理编码器和集成帐户之间创建连接的连接名称和集成帐户。

    3. 在设计器中,选择批处理编码器操作以打开操作信息窗格。 在“ 参数 ”选项卡上,提供以下参数的值。 如有必要,请从 高级参数中选择参数

      参数 说明
      X12 协议的名称 从此列表中选择你的同意项。

      注意:如果列表为空,请确保 将逻辑应用链接到具有协议的集成帐户
      BatchName 在此框中选择以显示输入选项。 选择照明图标以打开动态内容列表。 从列表中的“批处理消息”下,选择名为 Batch Name 的触发器输出
      PartitionName 在此框中选择以显示输入选项。 选择闪电图标以打开动态内容列表。 从列表中,在 “Batch 消息”下,选择 “分区名称”。
      选择用于切换到输入整个数组的 T 图标。 在 “项 ”框中选择以显示输入选项。 选择闪电图标以打开动态内容列表。 从列表中的“批处理消息”下,选择名为 Batched Items 的触发器输出

      屏幕截图显示了“按协议名称批量编码”的操作,可在其中指定值。

      对于“项”框:

      屏幕截图显示了用于指定批次项目的“项”输入框。

  8. 保存工作流。

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

测试工作流

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

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

  2. 在设计器中,选择 HTTP 操作以打开操作信息窗格。 在“ 参数 ”选项卡上,提供以下参数的值:

    参数 说明
    方法 在此列表中选择“POST”。
    URI 生成请求 bin 的 URI,然后在此框中输入该 URI。
    正文 在此框中选择以显示输入选项。 选择照明图标以打开动态内容列表。 在此列表中,在按协议名称批量编码下,选择一个名为Content的动作输出。

    如果未显示 内容 ,请在 Batch 按协议名称进行编码旁边,选择“ 查看更多”。

    屏幕截图显示了指定值的 HTTP 操作。

  3. 保存工作流。

    批处理接收器工作流如以下示例所示:

    屏幕截图显示了已完成的批处理接收器工作流。

  4. 继续下一部分,在其中创建批发送方以将消息发送到批接收方。

创建 X12 批发送方

现在,需要一个或多个将消息发送到批处理接收器的逻辑应用。 对于每个批发送方,请指定批接收方和批名称、消息内容以及任何其他设置。 可以选择提供唯一分区键,将批处理划分为子集,并使用该键收集消息。

在开始之前,请确保已完成以下任务:

  • 创建了批处理接收器。 创建批发送方时,批接收方必须存在。 否则,无法选择批处理接收方作为目标批处理。 批接收方不需要知道批发送方,但批发送方必须知道消息的发送位置。

  • 确保批接收方和批发送方使用相同的 Azure 订阅 Azure 区域。 否则,在创建批发送方时无法选择批接收方,因为它们相互不可见。

  1. 创建另一个名为 SendX12MessagesToBatch 的逻辑应用。

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

  3. 遵循以下 常规步骤 ,根据逻辑应用程序类型添加 Batch 操作

    • 消耗:发送到批处理触发器工作流
    • 标准: 发送到批处理
    1. 请遵循以下步骤,适用于您的逻辑应用程序类型:

      • 消耗:选择之前创建的 BatchX12Messages Batch_messages > 添加操作>
      • 标准:跳过此步骤并转到下一步。
  4. 在“ 参数 ”选项卡上,提供以下参数的值:

    参数 说明
    批名称 批接收器中定义的批处理名称,在本示例中为 TestBatch

    重要说明:批处理名称在运行时得到验证,并且必须与批处理接收方指定的名称匹配。 更改批名称会导致批发送方失败。
    消息内容 要发送的消息内容,即 HTTP 触发器的正文输出

    “消息内容 ”框中选择以显示输入选项。 选择闪电图标以打开动态内容列表。 从列表中,在 HTTP 下,选择 正文
    - 消耗: 工作流 ID
    - 标准: 工作流名称
    - 消耗工作流:该值已预填充。
    - 标准:在批处理接收方工作流中输入触发器名称,此示例中为 Batch 消息
    触发器名称 - 消耗工作流:该值已预填充。
    - 标准:输入批处理接收器工作流中的触发器名称。

    屏幕截图显示了BatchX12Messages操作,该操作用于设置批处理参数。

  5. 保存工作流。

    您的批处理发送器示例如下:

    屏幕截图显示了批处理发送方逻辑应用的工作流。

测试工作流

若要测试批处理解决方案,请从 HTTP 请求工具将带有 X12 消息的 HTTP POST 请求发送到批处理发送方。 如果使用了示例值,则开始每隔 10 分钟或在 10 个批处理中获取请求箱中的 X12 消息,所有这些消息具有相同的分区键。