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种情况:
- V_D_MAX_LOAD_ID_HIS 为空且 V_D_MAX_LOAD_ID 不为空
-> 在这种情况下,该值应该为真。第一个 (equals(variables('V_D_MAX_LOAD_ID_HIS'), '') 将为真,因此我们将位于 if 的真部分,输出应为 true.
- V_D_MAX_LOAD_ID_HIS 和 V_D_MAX_LOAD_ID 具有相同的值
-> 在这种情况下,第一个 equals 将为 false,我们将跳到第二个 equals 所在的 false 部分。第二个等于将为真,因为两者具有相同的值。所以输出应该是 true.
- 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.
我在 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种情况:
- V_D_MAX_LOAD_ID_HIS 为空且 V_D_MAX_LOAD_ID 不为空
-> 在这种情况下,该值应该为真。第一个 (equals(variables('V_D_MAX_LOAD_ID_HIS'), '') 将为真,因此我们将位于 if 的真部分,输出应为 true.
- V_D_MAX_LOAD_ID_HIS 和 V_D_MAX_LOAD_ID 具有相同的值
-> 在这种情况下,第一个 equals 将为 false,我们将跳到第二个 equals 所在的 false 部分。第二个等于将为真,因为两者具有相同的值。所以输出应该是 true.
- 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.