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

在 Azure 逻辑应用中为工作流对平面文件中的 XML 内容进行编码和解码

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

在企业到企业(B2B)集成中与贸易合作伙伴交换 XML 内容时,在发送内容之前,必须经常对内容进行编码。 收到编码的 XML 内容时,必须先解码该内容,然后才能使用它。

本指南介绍如何使用 平面文件 内置连接器作和平面文件架构在工作流中对 XML 进行编码和解码。

连接器技术参考

** 平面文件编码和解码可用于消费逻辑应用工作流和标准逻辑应用工作流。

逻辑应用程序 环境
消耗 多租户 Azure 逻辑应用
标准 单租户 Azure 逻辑应用、应用服务环境 v3(仅限 Windows 计划)和混合部署

有关详细信息,请参阅 集成帐户内置连接器

Prerequisites

  • Azure 帐户和订阅。 获取免费的 Azure 帐户

  • 要使用平面文件操作的逻辑应用资源和工作流。

    平面文件操作不包含任何触发器。 工作流可以从任何触发器开始,也可以使用任何操作引入源 XML。

    本文中的示例使用名为“收到 HTTP 请求时的请求触发器。

    有关详细信息,请参见:

  • 用于定义和存储企业集成和 B2B 工作流工件的 集成帐户资源

    • 集成帐户和逻辑应用资源必须存在于同一 Azure 订阅和 Azure 区域中。

    • 在开始使用平面文件操作之前,必须链接消耗型逻辑应用资源链接标准型逻辑应用到集成帐户,以便处理诸如贸易伙伴和协议之类的工件。 可以将集成帐户链接到多个“消耗型”或“标准型”逻辑应用资源,以共享相同的工件。

    小窍门

    如果不在标准工作流中使用 B2B 项目(如贸易合作伙伴和协议),则可能不需要集成帐户。 相反,可以将架构直接上传到标准逻辑应用资源。 无论哪种方式,都可以在同一逻辑应用资源中的所有子工作流中使用同一架构。 若要跨多个逻辑应用资源使用相同的架构,必须使用并链接集成帐户。

  • 一个平面文件架构,指定如何对 XML 内容进行编码或解码。

    在标准工作流中,平面文件操作允许你从链接的集成帐户或之前上传到逻辑应用的架构中选择架构,但不能同时选择两者。

    有关详细信息,请参阅 向集成帐户添加架构

限制

  • 要解码的 XML 内容必须采用 UTF-8 格式编码。

  • 在平面文件架构中,请确保包含的 XML 组没有将太多的 max count 属性设置为大于 1 的值。 避免将 max count 属性值大于 1 的 XML 组嵌套在 max count 属性值大于 1 的另一个 XML 组中。

  • 当 Azure 逻辑应用分析平面文件架构,当架构允许选择下一个片段时,Azure 逻辑应用会生成该片段 的符号预测 。 如果架构允许太多构造(例如超过 100,000 个),则架构扩展会变得非常大,这会消耗过多的资源和时间。

上传架构

创建架构后,根据工作流上传架构:

添加平面文件编码操作。

  1. Azure 门户中,打开你的逻辑应用资源。

  2. 在设计器中,打开工作流。

    如果工作流没有触发器或所需的任何其他操作,请先添加这些操作。

    此示例使用名为请求的触发器“收到 HTTP 请求时”。 若要添加触发器,请参阅 “添加触发器”以启动工作流

  3. 在设计器中,按照以下常规步骤添加名为Flat File Encoding的内置操作。

    操作信息窗格打开时,已选择 参数 选项卡。

  4. 在动作的Content参数中,请按照以下步骤提供要编码的 XML 内容,此内容是触发器输出或之前动作的输出:

    1. “内容 ”框中选择,然后选择闪电图标以打开动态内容列表。

    2. 从动态内容列表中,选择要编码的 XML 内容。

    以下示例显示了打开的动态内容列表、 收到 HTTP 请求时的 输出以及触发器输出中的所选 正文 内容。

    屏幕截图显示了 Azure 门户、工作流设计器、“平面文件编码”操作和内容参数,其中选择了动态内容列表和内容进行编码。

    注意

    如果 正文 未显示在动态内容列表中,请在 “收到 HTTP 请求时 ”部分标签旁边选择“ 查看更多”。 还可以直接在“内容”框中输入要编码的内容。

  5. 从“架构名称”列表中选择你的架构。

    屏幕截图显示了设计器和打开的架构名称列表,其中选择了用于编码的架构。

    注意

    如果架构列表为空,原因可能是:

    • 逻辑应用资源未链接到集成帐户。
    • 链接集成帐户不包含任何架构文件。
    • 逻辑应用资源不包含任何架构文件。 此原因仅适用于标准逻辑应用。
  6. 若要向作添加其他可选参数,请从 “高级参数 ”列表中选择这些参数。

    参数 说明
    空节点生成模式 ForcedDisabledHonorSchemaNodePropertyForcedEnabled 用于空节点生成的模式(采用平面文件编码)

    对于 BizTalk,平面文件架构具有控制空节点生成的属性。 可以遵循平面文件架构的空节点生成属性行为。 或者,可以使用此设置让 Azure Logic Apps 生成或省略空节点。 有关详细信息,请参阅空元素的标记
    XML 标准化 用于在平面文件编码中启用或禁用 XML 规范化的设置。 有关详细信息,请参阅 XmlTextReader.Normalization
  7. 保存工作流。 在设计器工具栏上,选择“保存”

添加平面文件解码操作

  1. Azure 门户中,打开你的逻辑应用资源。

  2. 在设计器中,打开工作流。

    如果工作流没有触发器或所需的任何其他操作,请先添加这些操作。

    此示例使用名为请求的触发器“收到 HTTP 请求时”。 若要添加触发器,请参阅 “添加触发器”以启动工作流

  3. 在设计器中,按照以下 常规步骤 添加名为 Flat File Decoding 的内置动作。

  4. 在操作的内容参数中,按照以下步骤提供要解码的 XML 内容,可以是触发器的输出,也可以是之前操作的输出:

    1. “内容 ”框中选择,然后选择闪电图标以打开动态内容列表。

    2. 从动态内容列表中,选择要解码的 XML 内容。

    以下示例显示了打开的动态内容列表、 收到 HTTP 请求时的 输出以及触发器输出中的所选 正文 内容。

    屏幕截图显示了 Azure 门户、工作流设计器、“平面文件解码”操作和内容参数,其中选择了动态内容列表和内容进行解码。

    注意

    如果正文未显示在动态内容列表中,请选择“收到 HTTP 请求”部分标签旁边的“查看更多”。 还可以直接在“内容”框中输入要解码的内容。

  5. 从“架构名称”列表中选择你的架构。

    屏幕截图中显示了设计器,以及已经打开的模式名称列表,其中选择了用于解码的模式。

    注意

    如果架构列表为空,原因可能是:

    • 逻辑应用资源未链接到集成帐户。
    • 链接集成帐户不包含任何架构文件。
    • 逻辑应用资源不包含任何架构文件。 此原因仅适用于标准逻辑应用。
  6. 保存工作流。 在设计器工具栏上,选择“保存”

你现在已经完成了平面文件解码操作的设置。 在实际应用中,你可能需要将已解码的数据存储在业务线 (LOB) 应用(如 Salesforce)中。 你也可以将已解码的数据发送给贸易合作伙伴。 若要将解码操作的输出发送到 Salesforce 或贸易合作伙伴,请使用 Azure 逻辑应用中提供的其他连接器。

测试工作流

要触发工作流,请执行以下步骤:

  1. 请求 触发器中,找到 HTTP POST URL 参数,并复制 URL。

  2. 打开 HTTP 请求工具,并使用其说明将 HTTP 请求发送到复制的 URL,包括“请求”触发器所需的方法。

    此示例将 POST 方法与 URL 配合使用。

  3. 在请求正文中包含要编码或解码的 XML 内容。

  4. 工作流运行完成后,转到工作流的运行历史记录,并检查 平面文件 操作的输入和输出。