首页 > 解决方案 > 如何根据条件跳过任务或容器的执行?

问题描述

我有几个顺序控制流任务和容器。

我已经看到有一个名为 disable 的表达式属性,我可以使用它动态禁用任务或容器。

如何不禁用和停止工作流,如何跳过任务或容器但从紧接的下一个控制流任务继续执行?

标签: ssis

解决方案


序列容器允许对任务进行逻辑分组。我在我的包裹中大量使用它们。

禁用任务或容器只会导致执行绕过它。在这里,我在“Sequence Container 1”上将 Disabled 属性设置为 True,您可以看到“Sequence Container”和“Sequence Container 2”显示绿色检查

在此处输入图像描述

如果我想禁用整个下游路径,我会将“序列容器”和“序列容器”之间的优先约束修改为“表达式和约束”,然后有一个基于变量的表达式,比如@[User::ProcessingReady]

在此处输入图像描述

在那里,您可以看到 1 和 2 已启用,但在处理过程中它们没有得到绿色检查,因为不满足继续的标准,先例约束 (fx)。

处理评论

“当禁用基于任务上的表达式(在属性窗格中)完成时,它的行为方式是否与右键单击和禁用任务相同?第一个是动态方法,后来是手动方法。”

确切地!任务如何进入禁用状态无关紧要,行为将是相同的:它不执行并且下一个启用的任务在线运行。

下图显示了通过表达式禁用的任务 - 左上角的 fx 提供了表达式存在的视觉提示。

在此处输入图像描述


推荐阅读