ADF 管道任务如果条件表达式获取错误函数“and”不接受 5 个参数

问题描述 投票:0回答:1

在我的 adf 管道中,我有 if 条件,所以我尝试运行表达式 @and(或(或(等于(formatDateTime(utcNow(), 'MM'), '01'),equals(formatDateTime(utcNow(), 'MM'), '02')),or(等于(formatDateTime( utcNow(), 'MM'), '03'),equals(formatDateTime(utcNow(), 'MM'), '04'))),startswith(formatDateTime(utcNow(), 'dddd'), '星期三' ),equals(variables('envName'), 'dev'),greaterOrEquals(formatDateTime(utcNow(), 'dd'), '07'),lessOrEquals(formatDateTime(utcNow(), 'dd'), '13' )) 但它没有按预期工作。

我想检查当前月份是否为 1 月、2 月、3 月和 4 月如果当前月份是这个,则检查日期是否在 7 至 13 之间,如果日期在 7-13 之间,则检查日期是否为星期三,如果条件为 true,则检查 eenv 是否为 dev然后它会执行 if 否则它会进入 else

我尝试了不同的条件,但收到该函数的错误且不支持 4 个参数,反之亦然

azure-data-factory
1个回答
0
投票

And
or
一次仅接受 2 个参数,因此请修改如下表达式。

@and(
    or(
        equals(formatDateTime(utcNow(), 'MM'), '01'),
        or(equals(formatDateTime(utcNow(), 'MM'), '02'),
        or(equals(formatDateTime(utcNow(), 'MM'), '03'),
        equals(formatDateTime(utcNow(), 'MM'), '04')))
    ),
    and(greaterOrEquals(formatDateTime(utcNow(), 'dd'), '07'),
    and(lessOrEquals(formatDateTime(utcNow(), 'dd'), '13'),
    and(startsWith(formatDateTime(utcNow(), 'dddd'), 'Wednesday'),
    equals(variables('envName'), 'dev'))))
)

输出:

以下是默认变量。

Enter image description here

执行后。

Enter image description here

有关更多信息,请查看文档。

© www.soinside.com 2019 - 2024. All rights reserved.