Azure数据工厂-如果Condition在逻辑上为true,但返回false

问题描述

我正在尝试进行逻辑测试以比较两个活动输出。 第一个是回传一个文件名(源自GetMetaData),另一个是回传数据库中已有的不同文件名(源自一个查找活动)。

因此,第一个活动给出的是X.csv(Blob0中的文件,而第二个活动给出的是列表Y.csv; Z.csv(查找结果与表X不同) 基于这个结果,我会说逻辑测试是正确的,因此ADF必须启动特定的活动。我使用下面的表达式,但是尽管没有错误,但结果始终是错误的。我究竟做错了什么?我想这与查询活动有关,因为查询将提供我认为的值列表。

请帮助谢谢!

@equals(activity('GetBlobName').output,activity('LookupBestandsnaam').output)

输出活动LookupBestandsnaam:

Output activity LookupBestandsnaam

输出活动GetBlobName:

Output activity GetBlobName

解决方法

查找和获取元数据的输出不同:

我们无法直接比较输出。您将始终在if条件表达式中得到false

请尝试以下表达式:

@equals(activity('GetBlobName').output.value.name,activity('LookupBestandsnaam').output.value.bestandsnaam)

更新

恭喜您使用另一种方法来解决它:

“我现在已将if条件替换为使用IF存在脚本的存储过程,该脚本基于ADF中的查找活动运行。”