在子管道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 不存在
当子管道内的 if 表达式结果为 False 时,会出现上述错误。如果为 false,则变量 2 的值将从子管道返回为
true
,并且管道不知道变量 1,因为在这种情况下它没有被执行。
而如果它是 true,则变量 1 的值将作为
true
返回,并且管道仍然不知道变量 2。但在这种情况下管道成功的原因是@or()
自然。如果 or()
中的第一个表达式是 true
,那么它不会检查第二个表达式,并且给出总结果为 true
。
要实现您的要求,请按照以下步骤操作。
在 if 的 child pipeline1 True 活动中,添加变量 1 和变量 2。如果是
true
,则将变量 1 的值指定为 true
,将变量 2 的值指定为 false
。
在 if 的 False 活动中执行相同操作,但为变量 2 提供
true
,为变量 2 提供 false
。
现在,无论 if 表达式结果如何(True 或 False),从子 pipeline1 和
@or(activity('Execute Pipeline1').output.pipelineReturnValue.var1,activity('Execute Pipeline1').output.pipelineReturnValue.var2)
返回的两个具有正确值的变量都将给出正确的值,您可以根据您的要求将其传递到下一个管道。