Data Factory中If else后续活动如何读取两个分支的任意活动输出
ADF If/Else分支动态取有效值方案
完全可以实现你要的「或」条件取值逻辑,用ADF表达式内置的coalesce函数搭配可选访问运算符即可。
具体表达式
直接在后续活动需要取值的位置使用以下表达式即可:
@coalesce(activity('adfactvtyfilter_activities_1').output?.value, activity('adfactvtyfilter_activities_2').output?.value)
逻辑说明
- 表达式里的
?.是可选访问运算符:如果对应的分支活动没有被执行,读取输出时会直接返回null,不会抛出活动未执行的报错 coalesce函数会按传入参数的顺序依次检查,返回第一个非空的有效值:因为任意时刻只会有一个分支的活动被执行,所以会自动返回实际运行的那个分支的输出值
注意事项
- 后续活动的依赖要设置为依赖整个If/Else活动的「完成」状态,不要单独依赖两个分支内的活动,避免分支还没执行完就提前读取输出
- 两个分支的活动输出的
value字段结构要保持一致,避免后续活动拿到不同格式的数据后处理报错
内容的提问来源于stack exchange,提问作者Venk AV
相关产品推荐
相关产品推荐

