适用范围:Azure 逻辑应用(消耗型 + 标准型)
若要在使用 Azure 逻辑应用创建的工作流中发送和接收 X12 消息,请使用 X12 连接器。 此连接器提供管理和支持 X12 通信的操作。
本指南演示如何将 X12 的编码和解码作添加到现有逻辑应用工作流。 可以将任何触发器与 X12 操作一起使用。 本指南中的示例使用“请求”触发器。
连接器技术参考
基于 逻辑应用类型和主机环境,X12 连接器具有不同的版本。
| 逻辑应用程序 | 环境 | 连接器版本 |
|---|---|---|
| 消耗 | 多租户 Azure 逻辑应用 | X12 托管连接器,该连接器显示在 “共享”下的连接器库中。 X12 连接器具有一个触发器和多个操作。 可以使用任何适合您方案的触发器。 有关详细信息,请参阅: - X12 管理型连接器参考 - X12 消息限制 |
| 标准 | 单租户 Azure 逻辑应用、应用服务环境 v3(仅限 Windows 计划)和混合部署 | X12 内置连接器,该连接器显示在 “内置”下的连接器库中,X12 托管连接器显示在 “共享”下的连接器库中。 X12 托管连接器具有一个触发器和多个操作。 X12 内置连接器仅提供操作。 可以使用任何适合您方案的触发器。 内置版本在以下方面有所不同: - 内置版本可以直接访问 Azure 虚拟网络。 不需要本地数据网关。 - 内置版本提供更高的吞吐量和较低的延迟。 有关详细信息,请参阅: - X12 管理型连接器参考 - X12 内置连接器操作 - X12 消息限制 |
X12 内置操作
以下部分介绍 X12 内置连接器的操作及其参数:
解码 X12
操作 ID:x12Decode
通过将平面文件转换为 XML 格式来解码 X12 消息。
参数
| 显示名称 | JSON 名称 | 必选 | 类型 | 说明 |
|---|---|---|---|---|
| 要解码的消息 | messageToDecode |
是 | String | 要解码的 X12 消息。 |
| B2B 跟踪 ID | b2bTrackingId |
否 | String | B2B 跟踪 ID。 |
编码 X12
操作 ID:x12Encode
通过将 XML 转换为平面文件格式对 X12 消息进行编码。
参数
| 显示名称 | JSON 名称 | 必选 | 类型 | 说明 |
|---|---|---|---|---|
| 要编码的消息 | messageToEncode |
是 | String | 要编码的 X12 消息。 |
| 发件人身份 发件人限定符 | senderIdentity.qualifier |
否 | String | 发送方限定符。 |
| 发件人标识发件人标识符 | senderIdentity.value |
否 | String | 发送方标识符。 |
| 接收方标识, 接收器限定符 | receiverIdentity.qualifier |
否 | String | 接收方限定符。 |
| 接收方标识、接收器标识符 | receiverIdentity.value |
否 | String | 接收方标识符。 |
| X12 协议的名称 | agreementName |
否 | String | X12 协议的名称。 |
| B2B 跟踪 ID | b2bTrackingId |
否 | String | B2B 跟踪 ID。 |
对 X12 批处理进行编码
操作 ID:x12BatchEncode
通过将 XML 转换为平面文件格式,对 X12 消息批处理进行编码。
参数
| 显示名称 | JSON 名称 | 必选 | 类型 | 说明 |
|---|---|---|---|---|
| 批处理消息 | batchMessage.items |
是 | Array | 要编码的 X12 消息。 |
| 消息 ID | batchMessage.items.messageId |
是 | String | 批处理项的唯一 ID。 |
| Content | batchMessage.items.content |
是 | String | 批处理项内容。 |
| 批次名称 | batchMessage.batchName |
否 | String | 批次名称。 |
| 分区名称 | batchMessage.partitionName |
否 | String | 分区名称。 |
| 发件人身份 发件人限定符 | senderIdentity.qualifier |
否 | String | 发送方限定符。 |
| 发件人标识发件人标识符 | senderIdentity.value |
否 | String | 发送方标识符。 |
| 接收方标识, 接收器限定符 | receiverIdentity.qualifier |
否 | String | 接收方限定符。 |
| 接收方标识、接收器标识符 | receiverIdentity.value |
否 | String | 接收方标识符。 |
| X12 协议的名称 | agreementName |
否 | String | X12 协议的名称。 |
| B2B 跟踪 ID | b2bTrackingId |
否 | String | B2B 跟踪 ID。 |
先决条件
Azure 帐户和订阅。 如果没有 Azure 订阅,请注册一个 Azure 帐户。
要在其中使用 X12 操作的逻辑应用资源和工作流。
有关详细信息,请参见:
一个集成帐户资源,用于定义和存储可在企业集成与 B2B 工作流中使用的项目。
集成帐户和逻辑应用资源必须存在于同一 Azure 订阅和 Azure 区域中。
定义至少两个参与工作流中使用的 X12 操作的参与方。 两个合作伙伴的定义必须使用相同的 X12 业务标识 限定符。
定义参与工作流的参与方之间的 X12 协议。 每个协议需要指定主机和来宾合作伙伴。 你与其他合作伙伴之间的消息中的内容必须与协议类型匹配。 有关接收和发送消息时要使用的协议设置的信息,请参阅 X12 消息设置。
重要
如果你正在使用健康保险可移植性和责任法案(HIPAA)架构,则必须向协议添加一个
schemaReferences部分。 有关详细信息,请参阅 HIPAA 架构和消息类型。定义用于 XML 验证的架构。
重要
如果使用健康保险流通与责任法案 (HIPAA) 架构,请确保查看 HIPAA 架构和消息类型。
在开始使用X12操作之前,必须将
消耗逻辑应用链接到集成帐户,或 标准逻辑应用链接到集成帐户。 当您添加一个 X12 操作时,还必须创建与集成帐户的连接。 您可以在将 X12 操作添加到工作流时创建连接。
编码 X12 消息
“编码为 X12 消息”操作执行以下任务:
通过匹配发送方和接收方上下文属性来解析协议。
序列化电子数据交换(EDI),并将 XML 编码的消息转换为交换中的 EDI 事务集。
应用交易集标头和尾部段。
为每个传出交换生成交换控制编号、组控制编号和交易集控制编号。
替换有效负载数据中的分隔符。
验证 EDI 和特定于合作伙伴的属性。
- 针对消息架构进行的交易集数据元素架构验证。
- 对交易集数据元素进行的 EDI 验证。
- 对交易集数据元素进行的扩展验证。
请求技术和/或功能确认(如果已配置)。
- 作为标头验证的结果生成技术确认。 技术确认报告地址接收方进行的交换标头和尾部处理的状态。
- 作为正文验证的结果生成功能确认。 功能确认报告在处理收到的文档时遇到的每个错误。
若要使用 X12 连接器对消息进行编码,请执行以下步骤:
在 Azure 门户的设计器中,打开你的逻辑应用资源和工作流。
在设计器中,按照以下 常规步骤 将名为按协议名称编码为 X12 消息 的 X12 操作添加到工作流中。
注意
要改为使用按标识编码到 X12 消息 操作,您必须稍后提供不同的参数值,例如 X12 协议指定的 发送方标识符 和 接收方标识符。 还必须指定要 对值进行编码的 XML 消息 ,可以从触发器或前面的作中选择该值作为输出。
当系统提示你创建与集成帐户的连接时,请提供以下信息:
参数 必选 说明 连接名称 是 连接的名称。 集成帐户 ID 是 集成帐户的资源 ID,其格式如下: /subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Logic/integrationAccounts/<integration-account-name>
例如:/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/integrationAccount-RG/providers/Microsoft.Logic/integrationAccounts/myIntegrationAccount
若要查找此资源 ID,请执行以下步骤:
1. 在 Azure 门户中,打开集成帐户。
2. 在集成帐户边栏上,选择“ 概述”。
3. 在“概述”页上,选择“JSON 视图”。
4. 从“资源 ID”属性中,复制值。集成帐户 SAS URL 是 请求终结点 URL,它使用共享访问签名 (SAS) 身份验证来提供对集成帐户的访问。 此回叫 URL 格式如下: https://<request-endpoint-URI>sp=<permissions>sv=<SAS-version>sig=<signature>
例如:https://prod-04.west-us.logic-azure.com:443/integrationAccounts/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb?api-version=2015-08-1-preview&sp=XXXXXXXXX&sv=1.0&sig=aB1cD2eF-3gH4iJ5kL6-mN7oP8qR
若要查找此 URL,请执行以下步骤:
1. 在 Azure 门户中,打开集成帐户。
2. 在集成帐户边栏的“设置”下,选择“回调 URL”。
3. 从“生成的回叫 URL”属性中,复制值。控制编号块的大小 否 保留用于高吞吐量场景的协议控制编号块大小。 例如:
完成后,选择“ 新建”。
在 X12 动作信息窗格中,提供以下值:
参数 必选 说明 X12 协议的名称 是 要使用的 X12 协议。 要编码的 XML 消息 是 要编码的 XML 消息。 高级参数 否 可以选择的更多参数:
- 数据元素分隔符
- 组件分隔符
- 替换字符
- 段终止符
- 段终止符后缀
- 控制版本号 (ISA12)
- 应用程序发送方标识符/代码 GS02
- 应用程序接收方标识符/代码 GS03
有关详细信息,请参阅 X12 消息设置。例如,可以使用请求触发器中的 正文 内容输出作为 XML 消息有效负载。
若要查找并选择此输出,请执行以下步骤:
在 XML 消息 中选择要编码的框,然后选择闪电图标以打开动态内容列表。
从列表中,在 “收到 HTTP 消息时”下,选择“正文”。
解码 X12 消息
“解码 X12 消息”操作执行以下任务:
针对贸易合作伙伴协议验证信封。
验证 EDI 和特定于合作伙伴的属性。
- EDI 结构验证和扩展架构验证
- 交换信封结构验证
- 针对控制架构对信封进行架构验证
- 针对消息架构进行的交易集数据元素架构验证
- 对交易集数据元素进行的 EDI 验证
验证交换、组和交易集控制编号不重复。
- 针对以前收到的交换检查交换控制编号。
- 针对交换中的其他组控制编号检查组控制编号。
- 针对该组中的其他事务集控制编号检查事务集控制编号。
将交换拆分为交易集,或保留整个交换:
将交换拆分为交易集或在出错时暂停交易集:分析每个交易集。 X12 解码操作仅将未通过验证的事务集输出到
badMessages,并将剩余事务集输出到goodMessages。将交换拆分为交易集或在出错时暂停交换:分析每个交易集。 如果交换中的一个或多个交易集未能通过验证,X12 解码操作会将该交换中的所有交易集输出到
badMessages。保留交换或在出错时暂停交易集:保留交换并处理整个批量交换。 X12 解码操作仅将未通过验证的事务集输出到
badMessages,并将剩余事务集输出到goodMessages。保留交换或在出错时暂停交换:保留交换并处理整个批量交换。 如果交换中的一个或多个交易集未能通过验证,X12 解码操作会将该交换中的所有交易集输出到
badMessages。
生成技术和功能确认(如果已配置)。
- 作为标头验证的结果生成技术确认。 技术确认报告地址接收方进行的交换标头和尾部处理的状态。
- 作为正文验证的结果生成功能确认。 功能确认报告在处理收到的文档时遇到的每个错误。
若要使用 X12 连接器解码工作流中的 X12 消息,请执行以下步骤:
在 Azure 门户的设计器中,打开你的逻辑应用资源和工作流。
在设计器中,按照以下常规步骤将名为Decode X12 消息的 X12 动作添加到工作流中。
当系统提示你创建与集成帐户的连接时,请提供以下信息:
参数 必选 说明 连接名称 是 连接的名称。 集成帐户 ID 是 集成帐户的资源 ID,其格式如下: /subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Logic/integrationAccounts/<integration-account-name>
例如:/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/integrationAccount-RG/providers/Microsoft.Logic/integrationAccounts/myIntegrationAccount
若要查找此资源 ID,请执行以下步骤:
1. 在 Azure 门户中,打开集成帐户。
2. 在集成帐户边栏上,选择“ 概述”。
3. 在“概述”页上,选择“JSON 视图”。
4. 从“资源 ID”属性中,复制值。集成帐户 SAS URL 是 请求终结点 URL,它使用共享访问签名 (SAS) 身份验证来提供对集成帐户的访问。 此回叫 URL 格式如下: https://<request-endpoint-URI>sp=<permissions>sv=<SAS-version>sig=<signature>
例如:https://prod-04.west-us.logic-azure.com:443/integrationAccounts/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb?api-version=2015-08-1-preview&sp=XXXXXXXXX&sv=1.0&sig=aB1cD2eF-3gH4iJ5kL6-mN7oP8qR
若要查找此 URL,请执行以下步骤:
1. 在 Azure 门户中,打开集成帐户。
2. 在集成帐户边栏的“设置”下,选择“回调 URL”。
3. 从“生成的回叫 URL”属性中,复制值。控制编号块的大小 否 保留用于高吞吐量场景的协议控制编号块大小。 例如:
完成后,选择“ 新建”。
在 X12 操作信息框中,提供以下数值:
参数 必选 说明 要解码的 X12 平面文件消息 是 要解码的平面文件格式的 X12 消息
注意:对消息数组中的 XML 消息有效负载或内容进行 base64 编码。 必须使用处理此内容的表达式。 例如,以下表达式使用xml()base64ToBinary()item()和函数将消息数组中的内容作为 XML 进行处理:xml(base64ToBinary(item()?['Body']))高级参数 否 此操作包括以下其他参数:
- 保留交换
- 出错时暂停交换
有关详细信息,请参阅 X12 消息设置。例如,可以使用请求触发器中的 正文 内容输出作为 XML 消息有效负载,但必须先处理此内容,如以下表达式所示:
xml(base64ToBinary(item()?['Body']))若要完成此任务,请执行以下步骤:
选择X12 平面文件消息以解码框内的内容,然后选择功能图标以打开表达式编辑器。
在表达式编辑框中,输入以下表达式,该表达式引用请求触发器的Body输出:
xml(base64ToBinary(string(triggerBody())))完成后,选择“添加”。