如何根据条件跳过任务或容器的执行?
How to skip execution of task or container based on condition?
我有几个顺序控制流任务和容器。
我看到有一个名为 disable 的表达式 属性,我可以使用它来动态禁用任务或容器。
我怎样才能跳过任务或容器而不是禁用和停止工作流,而是从紧接的下一个控制流任务继续执行?
序列容器允许对任务进行逻辑分组。我在我的包裹中大量使用它们。
禁用任务或容器,只会导致执行绕过它。在这里,我将“Sequence Container 1”的 Disabled 属性 设置为 True,您可以看到“Sequence Container”和“Sequence Container 2”显示了绿色勾号
如果我想禁用整个下游路径,我会将“Sequence Container”和“Sequence Container”之间的优先约束修改为“Expression and Constraint”,然后有一个基于变量的表达式,例如@[User::ProcessingReady]
在那里,您可以看到 1 和 2 已启用,但它们在处理过程中没有获得绿色检查,因为继续的条件不满足先例约束 (fx)。
处理评论
“当基于任务的表达式(在属性窗格中)完成禁用时,它的行为方式是否也与右键单击和禁用任务的方式相同?第一个是动态方法,后来是手动方法。”
没错!任务如何进入禁用状态并不重要,行为是相同的:它不执行,下一个启用的任务运行。
下图显示了通过表达式禁用的任务 - 左上角的 fx 提供了表达式存在的视觉提示。
双击数据流路径箭头并设置先例约束 (fx)
我有几个顺序控制流任务和容器。
我看到有一个名为 disable 的表达式 属性,我可以使用它来动态禁用任务或容器。
我怎样才能跳过任务或容器而不是禁用和停止工作流,而是从紧接的下一个控制流任务继续执行?
序列容器允许对任务进行逻辑分组。我在我的包裹中大量使用它们。
禁用任务或容器,只会导致执行绕过它。在这里,我将“Sequence Container 1”的 Disabled 属性 设置为 True,您可以看到“Sequence Container”和“Sequence Container 2”显示了绿色勾号
如果我想禁用整个下游路径,我会将“Sequence Container”和“Sequence Container”之间的优先约束修改为“Expression and Constraint”,然后有一个基于变量的表达式,例如@[User::ProcessingReady]
在那里,您可以看到 1 和 2 已启用,但它们在处理过程中没有获得绿色检查,因为继续的条件不满足先例约束 (fx)。
处理评论
“当基于任务的表达式(在属性窗格中)完成禁用时,它的行为方式是否也与右键单击和禁用任务的方式相同?第一个是动态方法,后来是手动方法。”
没错!任务如何进入禁用状态并不重要,行为是相同的:它不执行,下一个启用的任务运行。
下图显示了通过表达式禁用的任务 - 左上角的 fx 提供了表达式存在的视觉提示。
双击数据流路径箭头并设置先例约束 (fx)