Azure Data Factory ForEach中IF条件多校验表达式求助
解决Azure Data Factory ForEach活动中Web API响应的IF条件校验问题
正确的IF条件表达式
@or( and(contains(keys(activity('webapi').output), 'StatusCode'), equals(activity('webapi').output.StatusCode, 200)), contains(keys(activity('webapi').output), 'SourceId') )
关键修正点
- 逻辑运算符错误:原表达式用
and要求同时满足两个条件,但需求是任一条件满足即可,需替换为or。 - 缺失字段存在性判断:直接访问不存在的字段会触发报错,必须先用
contains(keys(activity('webapi').output), '字段名')判断字段是否存在,再进行值校验。 - 数据类型匹配:
StatusCode是数值类型(200),无需加单引号,原表达式用字符串'200'会导致匹配失败。
补充说明
如果SourceId需要匹配特定值(而非仅存在该字段),可调整第二个条件为:
and(contains(keys(activity('webapi').output), 'SourceId'), equals(activity('webapi').output.SourceId, '目标值'))
内容的提问来源于stack exchange,提问作者Developer Rajinikanth
相关产品推荐
相关产品推荐

