Power Automate:Search for Users (V2)无结果时条件未触发问题咨询
解决Power Automate中Search for Users (V2)无结果时的判断失效问题
问题根源
你之前的表达式失效,是因为当Search for Users (V2)找不到用户时,返回的body/value不是空数组,而是null。empty()函数对null会返回false,导致你写的空数组判断条件永远不成立,自然触发不了「No user found」分支。
正确的判断方式
以下两种写法都能可靠判断无用户返回的场景:
方式1:直接判断返回值为null
{ "type": "If", "expression": { "equals": [ "@outputs('Search_for_users_(V2)')?['body/value']", null ] } }
方式2:兼容null和空数组(覆盖所有可能场景)
如果担心某些特殊情况返回空数组,可同时判断两种情况:
{ "type": "If", "expression": { "or": [ { "equals": [ "@outputs('Search_for_users_(V2)')?['body/value']", null ] }, { "equals": [ "@empty(outputs('Search_for_users_(V2)')?['body/value'])", true ] } ] } }
避坑提醒
- 不要直接访问
body/value[0]['DisplayName']:无用户时value是null,索引访问会直接报错中断流,必须先判断结果存在再执行该操作。 - 分支配置要对应:把「No user found」邮件放在条件**成立(true)的分支,「User found」放在不成立(false)**或者直接用「否则」分支。
验证方法
- 跑一次无用户的测试场景,查看流运行历史里
Search for Users (V2)的输出,确认body/value确实是null。 - 替换表达式后再测试,确认「No user found」分支能正常触发。
内容的提问来源于stack exchange,提问作者Terrence McGinnis
相关产品推荐
相关产品推荐

