循环失败时报告SSIS成功

时间:2016-06-29 12:09:34

标签: loops error-handling ssis

我有一个包含循环的包,它循环通过几个连接。循环中的每次迭代都是一个新连接。问题是,有时这些连接在包运行时出现故障。所以我添加了一个错误,给我们发送电子邮件通知,然后继续循环。

这很好,使用Event Handlers并将Propagate值更改为False。但问题是,如果连接失败,它将完成循环,但报告整个包失败。这是一个问题,因为在SSMS中的一个作业中,它会在该程序包完成后停止作业,并在它确实没有时报告失败。

即使此循环启动失败的电子邮件,是否有办法让软件包报告成功?我不希望它“继续下一步失败”,因为该包的其他部分可能合法失败,需要通知。

编辑:

以下是我正在做的屏幕截图。在循环内部有一个dataflow任务,第一个dataflow的连接有时会失败。如果是,它会触发电子邮件任务通知我们,然后继续循环。

不幸的是,FailPackageOnFailure已设置为false。

Loop

Properties

2 个答案:

答案 0 :(得分:0)

在失败的任务(或其父容器,如果适用)上,将FailPackageOnFailure的值更改为false。

如果您正在循环中执行此任务,您可能需要考虑是否还需要将FailParentOnFailure设置为false。

编辑:如果您的任务或容器都没有导致程序包失败且FailPackageOnFailure = true,那么您可能在脚本中将程序包设置为失败。也许在您的事件处理程序中,您要保留错误数,然后在程序包结束时,如果错误计数<>,则将程序包状态设置为失败。 0.

通过脚本或FailPackageOnFailure属性检查所有您可能将程序包设置为失败的点。

答案 1 :(得分:0)

您可以通过将属性 ForceExecutionResult 设置为成功(此属性的默认值为)来伪造执行结果为成功Foreach循环容器。