You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

检测Dynamics过滤查询空响应并返回布尔值的问题排查

解决Dynamics查询空响应的判断问题

我来帮你搞定这个判断问题!你当前的表达式之所以不管用,核心原因是空响应里的value是空数组[],而不是null——你拿它和@null做相等判断,结果永远是false,再套个not就一直返回true,自然不管有没有数据都触发操作了。

下面给你两种靠谱的解决方案,完全符合你的需求:

方法1:检查数组长度(最稳妥)

直接判断value数组的长度是否为0,这是最直观且不易出错的方式:

"expression": {
  "equals": [
    "@length(body('List_records')?['value'])",
    0
  ]
}

当value是空数组时,这个表达式返回true(触发你要执行的操作);当有数据返回时,数组长度大于0,返回false(不执行操作),完美匹配你的需求。

方法2:直接对比空数组

如果你更倾向于直接对比数组内容,也可以直接和空数组字面量做相等判断:

"expression": {
  "equals": [
    "@body('List_records')?['value']",
    []
  ]
}

Dynamics的List Records响应中value字段始终是数组类型,所以这种方式也能准确识别空响应的场景。

再复盘下你原来的问题

你之前写的表达式:

"expression": { "and": [ { "not": { "equals": [ "@body('List_records')?['value']", "@null" ] } } ] }

不管value是空数组还是有数据的数组,它都不等于null,所以equals返回false,not反转后就一直是true——这就是为什么不管有没有数据,判断结果都一样的原因。

内容的提问来源于stack exchange,提问作者Zak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:09:23