如何在adf管道中传递变量返回值

问题描述 投票:0回答:1

在子管道1中,我传递了if条件,在true语句中执行变量1,在false语句中执行变量2。

现在在 ChildPipeline2 参数中我传递的值是 @or(activity('childpipeline1').output.pipelinereturnvalue.variable1,activity('childpipeline1').output.pipelinereturnvalue.variable2,)

现在执行 true 语句且变量 1 执行表达式的 2 种情况正在工作。

当执行 false 语句且变量 2 执行时,表达式不起作用

现在执行 true 语句且变量 1 执行表达式的 2 种情况正在工作。

当执行 false 语句且变量 2 执行时,表达式不起作用。

我收到类似无法评估的错误,因为变量 1 不存在

azure-data-factory oracle-adf
1个回答
0
投票

enter image description here

当子管道内的 if 表达式结果为 False 时,会出现上述错误。如果为 false,则变量 2 的值将从子管道返回为

true
,并且管道不知道变量 1,因为在这种情况下它没有被执行。

而如果它是 true,则变量 1 的值将作为

true
返回,并且管道仍然不知道变量 2。但在这种情况下管道成功的原因是
@or()
自然。如果
or()
中的第一个表达式是
true
,那么它不会检查第二个表达式,并且给出总结果为
true

要实现您的要求,请按照以下步骤操作。

在 ifchild pipeline1 True 活动中,添加变量 1 和变量 2。如果是

true
,则将变量 1 的值指定为
true
,将变量 2 的值指定为
false

enter image description here

在 if 的 False 活动中执行相同操作,但为变量 2 提供

true
,为变量 2 提供
false

enter image description here

现在,无论 if 表达式结果如何(True 或 False),从子 pipeline1 和

@or(activity('Execute Pipeline1').output.pipelineReturnValue.var1,activity('Execute Pipeline1').output.pipelineReturnValue.var2)
返回的两个具有正确值的变量都将给出正确的值,您可以根据您的要求将其传递到下一个管道。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.