逻辑应用程序:“foreach”循环内的第二个查询未解析数据

问题描述

逻辑应用专家您好,

我想与您核对一些 foreach 循环行为,并检查这是否符合预期/是否有任何解决方法

Logic Apps Illustration Examples

因此,此 logicapps 的步骤是“运行查询并列出结果”搜索搜索 SecurityIncident 表。并且对于每条SecurityIncident记录,在“Using IncidentId-Query Details of the Alert”步骤中找到对应的SecurityAlert记录。

对于第一次查询,数据解析正确,每个字段都可以使用。

Run query and list results

但是,在第二次查询之后,我只能在步骤中使用“Body”和“value”。其中包含未解析的值。

Using IncidentId - Query details of the alert

问题:

  1. 这种行为是否符合预期?
  2. 是否有更好的方法来确保解析第二个查询
  3. 非常感谢您提供任何其他改进空间的建议。

谢谢!

解决方法

受操作中输入框所需类型/格式影响的选择列表。所以我认为这种行为是可以预料的。

如果您想从查询操作中获取解析的字段,可以使用表达式。查询结果正文的细节我不是很清楚,这里只提供一个示例供您参考:

例如,如果查询结果显示为:

{
    "body": [
        {
            "TenantId": "111","xxxx": "xxx"
        },{
            "TenantId": "222","xxxx": "xxx"
        }
    ]
}

然后可以使用表达式body('Run_query_and_list_results')[0]?['TenantId'] 来获取第一个TenantId 的值。一句话,用[index]获取数组,用?['key']获取map。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...