适用范围:Azure 逻辑应用(消耗型 + 标准型)
在企业到企业(B2B)集成中与贸易合作伙伴交换 XML 内容时,在发送内容之前,必须经常对内容进行编码。 收到编码的 XML 内容时,必须先解码该内容,然后才能使用它。
本指南介绍如何使用 平面文件 内置连接器作和平面文件架构在工作流中对 XML 进行编码和解码。
连接器技术参考
** 平面文件编码和解码可用于消费逻辑应用工作流和标准逻辑应用工作流。
| 逻辑应用程序 | 环境 |
|---|---|
| 消耗 | 多租户 Azure 逻辑应用 |
| 标准 | 单租户 Azure 逻辑应用、应用服务环境 v3(仅限 Windows 计划)和混合部署 |
有关详细信息,请参阅 集成帐户内置连接器。
先决条件
Azure 帐户和订阅。 获取 Azure 帐户。
要在其中使用 平面文件 作的逻辑应用资源和工作流。
平面文件 不包含任何触发器。 工作流可以从任何触发器开始,也可以使用任何操作引入源 XML。
本文中的示例使用名为“收到 HTTP 请求时”的请求触发器。
有关详细信息,请参见:
用于定义和存储企业集成和 B2B 工作流工件的 集成帐户资源。
集成帐户和逻辑应用资源必须存在于同一 Azure 订阅和 Azure 区域中。
在开始进行平面文件操作之前,必须将消耗逻辑应用或标准逻辑应用链接到集成帐户,以便处理贸易合作伙伴和协议等项目。 可以将集成帐户链接到多个“消费”或“标准”逻辑应用资源,以共享相同的制品。
小窍门
如果不在标准工作流中使用 B2B 项目(如贸易合作伙伴和协议),则可能不需要集成帐户。 相反,可以将架构直接上传到标准逻辑应用资源。 无论哪种方式,都可以在同一逻辑应用资源中的所有子工作流中使用同一架构。 若要跨多个逻辑应用资源使用相同的架构,必须使用并链接集成帐户。
一个平面文件架构,指定如何对 XML 内容进行编码或解码。
在标准工作流中,平面文件操作允许你从链接的集成帐户中选择架构,或者选择之前上传到逻辑应用的架构,但不能同时从两者中选择。
有关详细信息,请参阅 向集成帐户添加架构。
安装或使用可发送 HTTP 请求以测试解决方案的工具,例如:
- Visual Studio Code,配有从 Visual Studio Marketplace 获取的扩展
- PowerShell Invoke-RestMethod
- Microsoft Edge - 网络控制台工具
- 布鲁诺
- Curl
注意
对于存在敏感数据(例如凭据、机密、访问令牌、API 密钥和其他类似信息)的情况,请务必使用一个符合以下条件的工具:具有可保护数据的必要安全功能,可脱机或本地工作,不会将数据同步到云,并且不需要登录联机帐户。 这样,就可以降低向公众公开敏感数据的风险。
限制
要解码的 XML 内容必须采用 UTF-8 格式编码。
在平面文件架构中,请确保包含的 XML 组没有将太多的
max count属性设置为大于 1 的值。 避免将max count属性值大于 1 的 XML 组嵌套在max count属性值大于 1 的另一个 XML 组中。当 Azure 逻辑应用分析平面文件架构,当架构允许选择下一个片段时,Azure 逻辑应用会生成该片段 的符号 和 预测 。 如果架构允许太多构造(例如超过 100,000 个),则架构扩展会变得非常大,这会消耗过多的资源和时间。
上传架构
创建架构后,根据工作流上传架构:
消耗: 将架构添加到消耗工作流的集成帐户
添加平面文件编码操作。
在 Azure 门户中,打开你的逻辑应用资源。
在设计器中,打开工作流。
如果工作流没有触发器或工作流所需的任何其他操作,请先添加这些操作。
此示例使用名为请求的触发器“收到 HTTP 请求时”。 若要添加触发器,请参阅 “添加触发器”以启动工作流。
在设计器中,按照以下常规步骤添加名为Flat File Encoding的内置操作。
操作信息窗格打开时,已选择 参数 选项卡。
在动作的Content参数中,请按照以下步骤提供要编码的 XML 内容,此内容是触发器输出或之前动作的输出:
在 “内容 ”框中选择,然后选择闪电图标以打开动态内容列表。
从动态内容列表中,选择要编码的 XML 内容。
以下示例显示了打开的动态内容列表、 收到 HTTP 请求时的 输出以及触发器输出中的所选 正文 内容。
注意
如果 正文 未显示在动态内容列表中,请在 “收到 HTTP 请求时 ”部分标签旁边选择“ 查看更多”。 还可以直接在“内容”框中输入要编码的内容。
从“架构名称”列表中选择你的架构。
注意
如果架构列表为空,原因可能是:
- 逻辑应用资源未链接到集成帐户。
- 链接集成帐户不包含任何架构文件。
- 逻辑应用资源不包含任何架构文件。 此原因仅适用于标准逻辑应用。
若要向作添加其他可选参数,请从 “高级参数 ”列表中选择这些参数。
参数 价值 说明 空节点生成模式 ForcedDisabled、HonorSchemaNodeProperty 或 ForcedEnabled 用于空节点生成的模式(采用平面文件编码)
对于 BizTalk,平面文件架构具有控制空节点生成的属性。 可以遵循平面文件架构的空节点生成属性行为。 或者,可以使用此设置让 Azure Logic Apps 生成或省略空节点。 有关详细信息,请参阅空元素的标记。XML 规范化 “是”或“否” 用于在平面文件编码中启用或禁用 XML 规范化的设置。 有关详细信息,请参阅 XmlTextReader.Normalization。 保存工作流。 在设计器工具栏上选择“保存”。
添加平面文件解码操作
在 Azure 门户中,打开你的逻辑应用资源。
在设计器中,打开工作流。
如果工作流没有触发器或工作流所需的任何其他操作,请先添加这些操作。
此示例使用名为请求的触发器“收到 HTTP 请求时”。 若要添加触发器,请参阅 “添加触发器”以启动工作流。
在设计器中,按照以下 常规步骤 添加名为 Flat File Decoding 的内置动作。
在操作的 内容 参数中,提供要解码的 XML 内容,作为触发器或先前操作的输出,并通过以下步骤进行操作:
在 “内容 ”框中选择,然后选择闪电图标以打开动态内容列表。
从动态内容列表中,选择要解码的 XML 内容。
以下示例显示了打开的动态内容列表、 收到 HTTP 请求时的 输出以及触发器输出中的所选 正文 内容。
注意
如果正文未显示在动态内容列表中,请选择“收到 HTTP 请求”部分标签旁边的“查看更多”。 还可以直接在“内容”框中输入要解码的内容。
从“架构名称”列表中选择你的架构。
注意
如果架构列表为空,原因可能是:
- 逻辑应用资源未链接到集成帐户。
- 链接集成帐户不包含任何架构文件。
- 逻辑应用资源不包含任何架构文件。 此原因仅适用于标准逻辑应用。
保存工作流。 在设计器工具栏上选择“保存”。
你现在已经完成了平面文件解码操作的设置。 在实际应用中,你可能需要将已解码的数据存储在业务线 (LOB) 应用(如 Salesforce)中。 你也可以将已解码的数据发送给贸易合作伙伴。 若要将解码操作的输出发送到 Salesforce 或贸易合作伙伴,请使用 Azure 逻辑应用中提供的其他连接器。
测试工作流
要触发工作流,请执行以下步骤:
在 请求 触发器中,找到 HTTP POST URL 参数,并复制 URL。
打开 HTTP 请求工具,并使用其说明将 HTTP 请求发送到复制的 URL,包括“请求”触发器所需的方法。
此示例将
POST方法与 URL 配合使用。在请求正文中包含要编码或解码的 XML 内容。
工作流运行完成后,转到工作流的运行历史记录,并检查 平面文件 操作的输入和输出。