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

问题描述

嗨逻辑应用专家,

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

逻辑应用插图示例

所以这个逻辑应用程序的步骤是“运行查询并列出结果”搜索将搜索 SecurityIncident 表。而对于每一条SecurityIncident记录,在“Using IncidentId-Query Details of the Alert”步骤中找到对应的SecurityAlert记录。

对于第一个查询,数据被正确解析,每个字段都可以使用。 运行查询并列出结果

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

问题:

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

谢谢!

标签: azure-logic-appskqlazure-sentinel

解决方案


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

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

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

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

然后您可以使用表达式body('Run_query_and_list_results')[0]?['TenantId']来获取 first 的值TenantId。总之,[index]用来获取数组,?['key']用来获取地图。


推荐阅读