65.9K
CodeProject 正在变化。 阅读更多。
Home

Azure Logic Apps - 解包模式

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2投票s)

2017年12月19日

CPOL

4分钟阅读

viewsIcon

11905

本文简要介绍了在 Azure Logic App 中使用 ForEach 循环来解包 JSON 文件。

引言

对于那些寻求在 Azure 逻辑应用上实现 debatching 模式的人来说,这将有助于快速入门。虽然可以使用 JSON "SplitOn" 在请求中分割文件,但我正在使用 For Each 循环来进行 debatch。

背景

没有 BizTalk 先前知识的本地 BizTalk 开发者或公民集成开发者可以从 Azure 逻辑应用开发开始。您必须拥有 Azure 订阅才能开发此功能,并需要 SOAP UI 或 Postman 工具来测试该解决方案。

Using the Code

场景

将批量订单文件拆分为单个订单并将其发送到目标路径。

对于这种情况,我将使用 JSON 格式的批量订单文件,并将目标路径设置为 Google Drive,以发送 debatched 订单。

批量 JSON 文件示例如下。 它在批处理中有四个订单。 预期输出是写入四个文件,并将它们的详细信息写入 Google Drive 帐户文件夹。

{
  "OrderDetails":{
  "BatchNo": "ORDERS078",
  "Orders":[
    {"Order":{"Id": "100","ProductName": 
    "Laptop","ProductCategory": "Electronics",
    "Productmanufacturer": "DELL",
    "Qty": "1","Price": "700"}},
    {"Order":{"Id": "200","ProductName": 
    "Mobile","ProductCategory": "Electronics",
    "Productmanufacturer": "Apple","Qty": 
    "1","Price": "499"}},
    {"Order":{"Id": "300","ProductName": 
    "TV","ProductCategory": "Appliance",
    "Productmanufacturer": "SONY","Qty": 
    "2","Price": "950"}},
    {"Order":{"Id": "400","ProductName": 
    "Swimming Kit","ProductCategory": "Sports",
    "Productmanufacturer": "Golddust","Qty": 
    "1","Price": "450"}}
    ]
  }
}

开发逻辑流程的步骤

我假设您拥有 Azure 订阅,并且您了解如何导航以创建逻辑应用工作流。

  1. 使用名称创建逻辑应用。 选择订阅,您可以创建新的资源组或使用现有的资源组,选择位置,然后单击“创建”按钮。 在 Azure 中创建需要一些时间。

  2. 转到逻辑应用仪表板,然后选择在步骤 1 中创建的上述逻辑应用。这将提示一个页面来设计流程,您可以选择模板中的“空白逻辑应用”。 在设计器上,选择 HTTP 连接器和触发器“收到 HTTP 请求时”。 单击“使用示例有效负载生成架构”选项。 在对话框中,复制场景部分中提供的示例。 单击“完成”后,这将生成 JSON 架构。

  3. 单击第一个流下方的“下一步”,然后转到“(更多...)”部分以添加“For Each”循环,然后从动态内容中选择“Order”。 出现此信息是因为已定义架构结构。

  4. 单击“For Each”循环内的“添加操作”,然后选择用于创建文件的 Google Drive 操作。 您可以在给定的搜索选项中键入搜索来查找。 选择此选项后,它将要求您提供 Google 帐户详细信息,以授权逻辑应用在您的 Google Drive 中写入文件。 您可以在 Google Drive 中创建一个单独的文件夹,供此应用程序测试您的文件。

    通过导航到文件夹选择器图标选择文件夹路径,文件名 = 设置日期时间

    为此,请单击“文件名”类型框,它将弹出“动态内容”和“表达式”。 选择“表达式”并向下滚动以查找“日期时间”函数以选择 utcNow()。 我选择此选项是为了使每个文件都具有不同的日期时间名称。 您可以浏览各种其他函数来设置带有宏的特定文件名。

    文件内容值将在下一步中设置。

  5. 转到逻辑应用设计器的代码视图模式以设置文件内容值。 您会看到正文值在第 18 行为空。 请参阅此处的突出显示屏幕。

    键入值的内容 --- ”@items('For_each')?['Order']"。

    第 18 行将如下所示:”body": "@items('For_each')?['Order']",

  6. 返回到设计器模式并展开第一个形状 HTTP 接收以设置高级选项“方法”=POST 并复制 HTTP Post URL 并保存项目。

  7. 使用任何测试工具(例如 SOAP UI 或 Google Postman)对其进行测试。 我正在使用 Postman 按照下面的屏幕进行测试。 使用 POST 谓词和您从逻辑应用设计器 HTTP 接收第一个形状复制的 url。 确保选择原始正文并使用内容类型 application/json。 与场景中提供的相同示例消息用于测试。 测试后,您将看到您的 Google Drive 文件夹中写入了四个文件。 您也可以查看文件的内容。

完整的已开发设计器视图

一览视图

测试结果

查看 Google Drive 中的订单文件,您还可以在逻辑应用运行历史记录中跟踪事务历史记录。 有关详细信息,请参见下面的图片。

Google Drive 中的图像

来自逻辑应用运行历史记录的图像

您可以单击事务详细信息进行深度分析。

© . All rights reserved.