如何在ADF中当目标容器无文件时执行文件复制操作?
实现目标容器为空时复制源数据到接收器的解决方案
第一步:配置Get Metadata活动
把Get Metadata活动的数据集指向目标容器,在活动设置里勾选Child items选项,执行后就能拿到目标容器内所有文件、文件夹的列表。第二步:用If Condition判断容器是否为空
不需要用Filter活动,直接用If Condition更高效。在If Condition的表达式框里输入:@equals(length(activity('Get Metadata').output.childItems), 0)这个表达式会检查Get Metadata返回的文件列表长度是否为0,以此判断容器是否为空。
第三步:添加复制逻辑
在If Condition的True分支下添加Copy Data活动,配置好源端数据集和接收器数据集,完成数据复制。False分支可以留空,或者添加日志活动记录容器非空的状态。
为什么之前用Filter活动没得到预期结果?
Filter活动的作用是对数组元素进行筛选,而这里只需要判断数组是否为空,用Filter属于多余操作。如果一定要用Filter,你可能需要设置永远不匹配的筛选条件(比如@equals(item().name, '')),再判断筛选后的结果长度是否为0,但这种做法完全没必要,直接用If Condition判断原数组长度更可靠。
内容的提问来源于stack exchange,提问作者Debashis
相关产品推荐
相关产品推荐

