如何根据任务状态更改控制任务流?

时间:2012-04-27 13:54:37

标签: ssis

我有一个SSIS包。我为这些任务设置了几个不同行为的处理程序。 我的问题是:特别是一项任务,如果失败,我希望它跳过其他一些任务并继续前进。 所以,我想为该特定任务设置OnError,以便跳转到其他任务。 如何在处理程序内部说出SSIS继续执行特定任务?

我想跳转到控制流程中的另一个任务。

2 个答案:

答案 0 :(得分:2)

你不能说对于SSIS,你必须用优先约束来实现它。 示例:假设您有任务A - > B - > C - > D,如果B失败,你不希望C执行,你可以这样做:

要注意虚线,你需要将优先级设置为OR,否则D只会在B成功并失败时执行,这是不可能的

enter image description here

答案 1 :(得分:1)

SSIS包上的控制流任务基于包中描述的流程执行。我们假设您有两个任务,Script TaskData flow task。这里的任务都是相互连接的。脚本任务被故意编码为失败。当它发生时,包将在那时停止执行,因为它的结构只是在成功执行脚本任务时执行数据流任务。

failure

您可以右键单击“脚本任务”和“数据流”任务之间的连接器/优先级约束,并将其从Success更改为Completion。这意味着它会指示包在脚本任务完成时执行Data Flow Task,无论它是失败还是成功。

right-click on constraint

现在,如果您运行该包,即使脚本任务失败,它也将执行数据流任务。

completion

你也可以有这样的多个流程。您所要做的就是右键单击任务之间的连接器/优先级约束,并选择正确的状态来决定程序包应该执行的路径。

multiple flows

希望有所帮助。

相关问题