在 Azure 逻辑应用中的贸易合作伙伴之间以批或组的形式交换 EDI 消息
适用于:Azure 逻辑应用(消耗)
在企业到企业 (B2B) 方案中,合作伙伴通常以组或批的形式交换消息。 使用 Azure 逻辑应用生成批处理解决方案时,可将消息发送到参与方,然后以批的形式统一处理这些消息。 本文以 X12 为例,介绍如何通过创建“批发送方”逻辑应用和“批接收方”逻辑应用来批处理 EDI 消息。
批处理 X12 消息的方式与批处理其他消息的方式类似。 使用批处理触发器将消息收集到某个批中,然后使用批处理操作将消息发送到批。 此外,在消息转到参与方或其他目标之前,X12 批处理包含一个 X12 编码步骤。 有关批处理触发器和操作的详细信息,请参阅批处理消息。
在本文中,我们将通过遵循以下特定顺序在同一个 Azure 订阅和 Azure 区域中创建两个逻辑应用,来生成批处理解决方案:
“批接收方”逻辑应用:接受消息并将其收集到批中,直到满足发布和处理这些消息的指定条件。 在此方案中,批接收方还会使用指定的 X12 协议或合作伙伴标识来编码批中的消息。
请务必先创建批接收方,然后才能在创建批发送方时选择批处理目标。
“批发送方”逻辑应用工作流:将消息发送到前面创建的批接收方。
请确保批接收方和批发送方逻辑应用工作流使用同一个 Azure 订阅和 Azure 区域。 否则,在创建批发送方时无法选择批接收方,因为它们相互不可见。
先决条件
Azure 订阅。 如果没有订阅,可以从 Azure 帐户着手。
有关如何创建逻辑应用工作流的基本知识。 有关更多信息,请参阅在多租户 Azure 逻辑应用中创建消耗逻辑应用工作流。
与 Azure 订阅关联且链接到逻辑应用的现有集成帐户。
集成帐户中至少有两个现有的合作伙伴。 每个合作伙伴在合作伙伴属性中使用 X12(标准运营商字母代码)限定符作为企业标识。
集成帐户中的现有 X12 协议。
若要使用 Visual Studio 而不是 Azure 门户,请确保设置 Visual Studio 以使用 Azure 逻辑应用。
创建 X12 批接收方
在将消息发送到某个批之前,该批必须存在且充当这些消息要发送到的目标。 因此,首先必须创建可以通过“批处理”触发器启动的“批接收方”逻辑应用。 这样,在创建“批发送方”逻辑应用时,便可以选择批接收方逻辑应用。 批接收方会持续收集消息,直到满足发布和处理这些消息的指定条件。 尽管批接收方不需要知道有关批发送方的任何信息,但批发送方必须知道要将消息发送到的目标。
对于此批接收方,需指定批模式、名称、发布条件、X12 协议和其他设置。
在 Azure 门户、Visual Studio 或 Visual Studio Code 中,创建名为“BatchX12Messages”的逻辑应用
在工作流设计器中,添加批触发器,这可启动逻辑应用工作流。
设置批接收方属性:
properties 值 说明 批处理模式 内联 批名称 TestBatch 仅适用于“内联”批处理模式 发布条件 基于消息计数、基于计划 仅适用于“内联”批处理模式 消息计数 10 仅适用于“基于消息计数”发布条件 间隔 10 仅适用于“基于计划”发布条件 频率 minute 仅适用于“基于计划”发布条件 注意
本示例不会设置批的分区,因此每个批次使用相同的分区键。 若要详细了解分区,请参阅批处理消息。
现在,添加一个用于编码每个批的操作:
如果事先未连接到集成帐户,现在请创建连接。 提供连接的名称,选择集成帐户,然后选择“创建”。
设置批编码器操作的以下属性:
properties 说明 X12 协议的名称 打开列表,并选择现有的协议。 如果该列表为空,请确保将逻辑应用链接到包含所需协议的集成帐户。
BatchName 在此框中单击,显示动态内容列表后,选择“批名称”标记。 PartitionName 在此框中单击,显示动态内容列表后,选择“分区名称”标记。 项 关闭项详细信息,然后在此框中单击。 显示动态内容列表后,选择“已批处理的项”标记。 对于“项”框:
保存逻辑应用工作流。
如果使用 Visual Studio,请确保将批接收方逻辑应用部署到 Azure。 否则,在创建批发送方时无法选择批接收方。
测试工作流
为确保批接收方按预期方式工作,可以添加一个 HTTP 操作用于测试,并将批处理的消息发送到请求 Bin 服务。
为 HTTP 操作设置属性:
properties 说明 方法 在此列表中选择“POST”。 Uri 生成请求 bin 的 URI,然后在此框中输入该 URI。 正文 在此框中单击,动态内容列表打开后,选择“按协议名称进行批编码”部分显示的“正文”标记。 如果未显示“正文”标记,请在“按协议名称进行批编码”旁边选择“查看更多”。
保存工作流。
批接收方逻辑应用如以下示例所示:
创建 X12 批发送方
现在创建一个或逻辑应用,用于将消息发送到批接收方逻辑应用。 在每个批发送方中,指定批接收方逻辑应用和批名称、消息内容及其他任何设置。 可以选择提供唯一分区键以将批划分为子集,从而收集具有该键的消息。
请确保已创建批接收方。 这样,在创建批发送方时,就可选择现有的批接收方作为目标批。 尽管批接收方不需要知道有关批发送方的任何信息,但批发送方必须知道要将消息发送到何处。
请确保批接收方和批发送方逻辑应用工作流使用同一个 Azure 订阅和 Azure 区域。 否则,在创建批发送方时无法选择批接收方,因为它们相互不可见。
另外创建一个名为“SendX12MessagesToBatch”的逻辑应用
若要添加将消息发送到批处理的操作,请按照这些常规步骤将名为“选择具有批触发器的逻辑应用工作流”的“将消息发送到批处理”操作。
选择前面创建的 BatchX12Messages 逻辑应用。
选择名为“Batch_messages - <你的批接收方>”的 BatchX12Messages 操作。
设置批发送方的属性。
properties 说明 批名称 接收方逻辑应用定义的批名称,在本示例中为“TestBatch” 重要说明:批名称在运行时将接受验证,必须与接收方逻辑应用指定的名称相匹配。 更改批名称会导致批发送方失败。
消息内容 要发送的消息内容,在本示例中为“正文”标记 保存工作流。
批发送方逻辑应用如以下示例所示:
测试工作流
若要测试批处理解决方案,请使用 HTTP 请求工具及其说明将 X12 消息发布到批发送方逻辑应用工作流。 很快,请求 bin 中就会每隔 10 分钟或者以 10 个一批的形式接收 X12 消息,所有这些消息具有相同的分区键。