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

Azure Data Factory Until活动布尔表达式转换报错咨询

解决方案

错误原因分析

报错function bool doesn't accept the 0 arguments是因为你错误使用了bool()函数的语法:你写成了bool()(xxx)的形式,相当于先调用无参数的bool函数,再把目标值作为参数传给返回结果,这不符合Azure Data Factory(ADF)的表达式规则。bool()函数需要直接接收一个参数(字符串、数字等)来完成类型转换。


具体修复步骤

1. 修正Until活动的结束判断表达式

原错误表达式:

@bool()(variables('Fileavilable '))

改为正确的参数传递形式:

@bool(variables('Fileavilable '))

或者更直观的字符串比较写法(因为变量是字符串类型的"true"/"false"):

@equals(variables('Fileavilable '), 'True')

2. 修正If Condition活动的判断表达式

注意activity('Get Metadata1').output.exists本身就是布尔类型,完全不需要额外转换,直接使用即可:

@activity('Get Metadata1').output.exists

如果出于兼容需求一定要用bool转换,正确写法是:

@bool(activity('Get Metadata1').output.exists)

3. 变量定义优化(可选但推荐)

  • 变量名Fileavilable 末尾有多余空格,容易引发意外问题,建议改为FileAvailable(同时修正拼写错误:avilable → available)
  • 把变量类型直接设为Boolean,默认值设为false,这样可以彻底省去字符串转布尔的步骤,表达式更简洁:
    "variables": {
        "FileAvailable": {
            "type": "Boolean",
            "defaultValue": false
        }
    }
    
    对应的Until表达式可简化为:
    @variables('FileAvailable')
    
    Set Variable活动的value直接设为布尔值true(不需要加引号)。

修复后的关键配置片段示例

Until活动表达式

"expression": {
    "value": "@bool(variables('Fileavilable '))",
    "type": "Expression"
}

If Condition活动表达式

"expression": {
    "value": "@activity('Get Metadata1').output.exists",
    "type": "Expression"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 21:45:20