我正在创建一个流程,您可以添加一个条件来检查。默认情况下,条件有一个简单的“值 1 等于/包含/...值 2”表达式。若要执行更高级的条件,可以使用 Azure 逻辑应用的工作流定义语言。
我的问题是:如何检查参数是否匹配超过 2 个值。例如,我想检查 value1 是否等于 value 2、value3、value 4、value5。
我知道如何检查 value1 是否等于 value2 或 value 3。假设 value2 是 2 而 value3 是 3:
@or(equals(body('action1')?['value1'], 2),equals(body('action1')?['value1'], 3))
但是,我不确定是否要检查更多值。or() 函数只允许 2 个参数。这是专门针对Microsoft Flow
.
我尝试使用 intersection() 函数的想法是,如果找到该值,它将返回一个值,并且我可以使用 empty() 为流条件返回一个布尔值:
@not(empty(intersection([body('action1')['value1']], [39, 40,41, 42])))
当我尝试这个时,我在流程中遇到错误;
模板验证失败:“第 1 行和第 4124 列的模板操作 'my_condition' 无效:“无法解析模板语言表达式 'not(empty(intersection([body('action1')['value1) ']], [39, 40,41, 42])))':预期的令牌'标识符'和实际的'LeftSquareBracket'。".'。
有人有什么想法吗?
参考:https ://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-workflow-definition-language