适用于:Azure 逻辑应用(消耗型 + 标准型)
在企业到企业 (B2B) 方案中,合作伙伴通常以组或批的形式交换消息。 使用 Azure 逻辑应用生成批处理解决方案时,可将消息发送到参与方,然后以批的形式统一处理这些消息。
批量处理 X12 消息的工作方式与其他消息的批处理方式相同。 使用批处理触发器将消息收集到一个批次中。 使用批处理操作将消息发送到批处理任务中。 在发送消息给贸易合作伙伴或其他目的地之前,需要包括 X12 编码步骤。 有关详细信息,请参阅 发送、接收和批处理消息。
本指南介绍如何通过创建两个逻辑应用、一个 批处理发送方 和一个 批处理接收器来生成处理电子数据交换(EDI)消息的批处理解决方案。 例如,此解决方案处理 X12 消息。
批处理接收器将消息收集到批处理中,直到满足特定条件才能发布和处理这些消息。 此批接收方还使用指定的 X12 协议或合作伙伴标识对批中的消息进行编码。
必须先创建批处理接收器作为批处理目标。 然后,可以在创建批发送方时选择批接收方。
批处理发送方逻辑应用工作流将消息发送到以前创建的批处理接收方。
批接收方和批发送方必须使用相同的 Azure 订阅 和 Azure 区域。 否则,在创建批发送方时无法选择批接收方,因为它们相互不可见。
注意
在标准逻辑应用中,可以创建两个工作流作为批接收方和批发送方。 消费逻辑应用只有一个工作流,因此你必须创建两个逻辑应用。
先决条件
- Azure 订阅。 如果没有订阅,可以从 Azure 帐户着手。
有关如何创建逻辑应用工作流的基本知识。 有关详细信息,请参阅以下文档:
使用同一 Azure 订阅并关联到您的逻辑应用的 集成帐户。
集成帐户中至少有两个 贸易合作伙伴 。 每个合作伙伴都必须使用 X12(标准运营商 Alpha 代码)限定符作为合作伙伴属性中的业务标识。
集成帐户中的现有 X12 协议。
安装或使用可发送 HTTP 请求以测试解决方案的工具,例如:
- Visual Studio Code,配有从 Visual Studio Marketplace 获取的扩展
- PowerShell Invoke-RestMethod
- Microsoft Edge - 网络控制台工具
- 布鲁诺
- Curl
注意
对于具有敏感数据(例如凭据、机密、访问令牌、API 密钥和其他类似信息)的方案,请确保使用一个工具,以必要的安全功能保护数据、脱机或本地工作,不会将数据同步到云,并且不需要登录到联机帐户。 这样,就可以降低向公众公开敏感数据的风险。
创建 X12 批接收方
在您发送消息到批处理之前,该批处理必须先作为目标批存在。 因此,首先创建批处理接收器,并使用 Batch 触发器启动工作流。 这样,在创建批发送方时,可以选择批接收方。
批处理接收器将收集消息,直到满足指定条件才能释放和处理这些消息。 批接收方不必知道批发送方,但批发送方必须知道消息的发送位置。
在 Azure 门户 或 Visual Studio Code 中,创建名为 BatchX12Messages 的逻辑应用。
如果以前未将逻辑应用链接到集成帐户, 请立即链接逻辑应用。
按照以下常规步骤添加名为Batch 触发器的批处理操作触发器。
在设计器上,选择 Batch 触发器 以打开触发器信息窗格。
在信息窗格中,选择 Batch 触发器的名称。 将名称更改为 *批处理消息。
在“ 参数 ”选项卡上,提供以下参数的值:
参数 值 说明 模式 内联 或 IntegrationAccount 仅适用于消费工作流。 批名称 < batch-name> 要使用的批处理名称。 此示例使用 TestBatch。
- 消耗工作流:仅在 模式 为 内联时可用。 此示例使用TestBatch。
- 标准工作流:始终可用。发布条件 - 基于消息计数
- 基于大小
- 基于计划要使用的发布条件类型。
- 消耗工作流:仅在 模式 为 内联时可用。
- 标准工作流:始终可用。
此示例使用 基于消息计数 和 基于计划。消息计数 < 整数> 仅当发布条件基于消息计数时可用。 指定要收集和释放的消息数。 此示例使用 10作为值。间隔 < 整数> 仅当发布条件基于计划时可用。 指定重复周期的时间间隔数。 此示例使用 10作为值。频率 < time-unit> 仅当发布条件基于计划时可用。 指定重复周期的时间单位。 此示例使用 Minute 作为值。
注意
此示例未为批处理设置分区。 每个批处理使用相同的分区键。 有关分区的详细信息,请参阅 “创建批处理发送方”。
添加对每个批次进行编码的操作。
按照以下
常规步骤 添加一个名为Batch 编码 的任意版本 X12 操作。如果事先未连接到集成帐户,现在请创建连接。
- 提供连接的名称。
- 提供 集成帐户 ID 和 集成帐户 SAS URL 参数的值。
- 选择“新建”。
在设计器中,选择批处理编码器操作以打开操作信息窗格。 在“ 参数 ”选项卡上,提供以下参数的值。 如有必要,请从 高级参数中选择参数。
参数 说明 X12 协议的名称 从此列表中选择你的同意项。
注意:如果列表为空,请确保 将逻辑应用链接到具有协议的集成帐户 。BatchName 在此框中选择以显示输入选项。 选择照明图标以打开动态内容列表。 从列表中,在 Batch 消息下,选择名为 Batch Name 的触发器输出。 PartitionName 在此框中选择以显示输入选项。 选择闪电图标以打开动态内容列表。 从列表中,在 “Batch 消息”下,选择 “分区名称”。 项 选择用于切换到输入整个数组的 T 图标。 在 “项 ”框中选择以显示输入选项。 选择闪电图标以打开动态内容列表。 在此列表中,在 Batch 消息下,选择名为 Batched Items 的触发器输出。 对于“项”框:
保存工作流。
如果使用 Visual Studio Code,请先 将批处理接收器逻辑应用部署到 Azure。 否则,在创建批发送方时无法选择批接收方。
测试工作流
为确保批接收方按预期方式工作,可以添加一个 HTTP 操作用于测试,并将批处理的消息发送到请求 Bin 服务。
按照以下 常规步骤 添加名为 HTTP 的 HTTP 作。
在设计器中,选择 HTTP 操作以打开操作信息窗格。 在“ 参数 ”选项卡上,提供以下参数的值:
参数 说明 方法 在此列表中选择“POST”。 URI 生成请求 bin 的 URI,然后在此框中输入该 URI。 正文 在此框中选择以显示输入选项。 选择照明图标以打开动态内容列表。 在此列表中,在按协议名称批量编码下,选择一个名为Content的动作输出。
如果未显示 内容 ,请在 Batch 按协议名称进行编码旁边,选择“ 查看更多”。保存工作流。
批处理接收器工作流如以下示例所示:
继续下一部分,在其中创建批发送方以将消息发送到批接收方。
创建 X12 批发送方
现在,需要一个或多个将消息发送到批处理接收器的逻辑应用。 对于每个批发送方,请指定批接收方和批名称、消息内容以及任何其他设置。 可以选择提供唯一分区键,将批处理划分为子集,并使用该键收集消息。
在开始之前,请确保已完成以下任务:
你 创建了批处理接收器。 创建批发送方时,批接收方必须存在。 否则,不能选择批接收方作为目标批。 批接收方不需要知道批发送方,但批发送方必须知道消息的发送位置。
确保批接收方和批发送方使用相同的 Azure 订阅 和 Azure 区域。 否则,在创建批发送方时无法选择批接收方,因为它们相互不可见。
创建另一个名为 SendX12MessagesToBatch 的逻辑应用。
按照以下常规步骤,添加名为“收到 HTTP 请求时”的请求触发器。
遵循以下 常规步骤 ,根据逻辑应用程序类型添加 Batch 操作:
- 消耗量: 发送到批处理触发器工作流
- 标准: 发送到批处理
请遵循以下步骤,适用于您的逻辑应用程序类型:
- 消耗:选择之前创建的 BatchX12Messages>Batch_messages>添加操作。
- 标准:跳过此步骤并转到下一步。
在“ 参数 ”选项卡上,提供以下参数的值:
参数 说明 批名称 批接收器中定义的批处理名称,在本示例中为 TestBatch。
重要说明:批处理名称在运行时得到验证,并且必须与批处理接收方指定的名称匹配。 更改批名称会导致批发送方失败。消息内容 要发送的消息内容,这是 HTTP 触发器的正文输出。
在 “消息内容 ”框中选择以显示输入选项。 选择闪电图标以打开动态内容列表。 从列表中,在 HTTP 下,选择 正文。- 消耗: 工作流 ID
- 标准: 工作流名称- 使用工作流:值已预填充。
- 标准:在批处理接收方工作流中输入触发器名称,此示例中为 Batch 消息 。触发器名称 - 使用工作流:值已预填充。
- 标准:输入批处理接收器工作流中的触发器名称。保存工作流。
您的批处理发送器示例如下:
测试工作流
若要测试批处理解决方案,请从 HTTP 请求工具将带有 X12 消息的 HTTP POST 请求发送到批处理发送方。 如果使用了示例值,则开始每隔 10 分钟或在 10 个批处理中获取请求箱中的 X12 消息,所有这些消息具有相同的分区键。