Azure 数据工厂如果条件未按预期工作

Azure Data Factory If Condition Not working as expected

我在 ADF IF 条件的动态表达式中有以下内容:

@if(equals(variables('V_D_MAX_LOAD_ID_HIS'), ''), true, equals(variables('V_D_MAX_LOAD_ID'), variables('V_D_MAX_LOAD_ID_HIS')))

可能出现3种情况:

  1. V_D_MAX_LOAD_ID_HIS 为空且 V_D_MAX_LOAD_ID 不为空

-> 在这种情况下,该值应该为真。第一个 (equals(variables('V_D_MAX_LOAD_ID_HIS'), '') 将为真,因此我们将位于 if 的真部分,输出应为 true.

  1. V_D_MAX_LOAD_ID_HIS 和 V_D_MAX_LOAD_ID 具有相同的值

-> 在这种情况下,第一个 equals 将为 false,我们将跳到第二个 equals 所在的 false 部分。第二个等于将为真,因为两者具有相同的值。所以输出应该是 true.

  1. V_D_MAX_LOAD_ID_HIS 和 V_D_MAX_LOAD_ID 具有相同的值

-> 第一个 equals 将再次为 false,因此我们跳入第二个 equals。这一个将是错误的,所以输出应该是 false

但由于某种原因,它不起作用。在第三种情况下,出于某种原因输出仍然为真,'If-Conidition-activity' 的真值 activity 被执行。

我的错误在哪里?

只是 post 结束这个问题的答案:这是因为变量设置不正确。

When I added the V_D_MAX_LOAD_ID_HIS i jsut copied the set variable activity from the V_D_MAX_LOAD_ID which already existed. Then I never changed the variable it should be assinged to. So both Activity set the variable for V_D_MAX_LOAD_ID and V_D_MAX_LOAD_ID_HIS was never properly set.