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

在ADF的If块中如何正确评估三个字符串为'True'的条件?

如何正确判断三个字符串是否均为'True'以触发If分支

我需要实现一个逻辑:当三个活动A、B、C**全部返回字符串'True'**时,执行If块的True分支,否则执行False分支。

  • 场景1(全为'True'):A='True'、B='True'、C='True' → 执行True分支
  • 场景2(至少一个非'True'):任意一个活动返回非'True'值 → 执行False分支

我尝试了以下表达式但触发错误:

@and(
   equals('True', 
    'True'), # True = True, 返回True
and(
    equals('True', 
    'True'),  # True = True, 返回True
    equals('True', 
    'True')  # True = True, 返回True
    )  # True & True, 返回True

 # True & True, 预期返回True
)

错误信息:

The function 'bool' was invoked with a parameter that is not valid. The value cannot be converted to the target type

我还尝试了另一种嵌套方式,仍报相同错误:

@and(
and(
   equals('True', 
    'True'),
     true
   ), 
and(
    equals('True', 
    'True'),  
    equals('True', 
    'True')  
    )  
)

问题原因

Azure逻辑应用的and()函数仅支持传入2个布尔类型的参数,你之前的写法虽然看似嵌套,但语法结构有误,导致参数无法被正确识别为布尔值,触发类型转换错误。

正确表达式

要判断三个条件同时成立,需正确嵌套and()函数,确保每个and()仅接收两个布尔参数:

@and(
    and(equals(A, 'True'), equals(B, 'True')),
    equals(C, 'True')
)

更易读的拆分写法:

@and(
    and(
        equals(A, 'True'),
        equals(B, 'True')
    ),
    equals(C, 'True')
)

场景验证

  • 场景1:当A、B、C均为'True'时,每个equals返回True,内层and输出True,外层and结合两个True最终返回True,触发True分支。
  • 场景2:只要任意一个活动返回非'True'值,对应equals返回False,整个and链会输出False,触发False分支。

额外提示

注意将表达式中的A、B、C替换为实际活动的输出引用,比如活动A的输出引用为body('Activity_A'),确保取到的是活动返回的字符串值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 20:27:48