5

我有一个包,只要控制流元素失败,它就会发送两封电子邮件。例如,如果 ExecuteSQL 任务失败,包级别的 OnError 事件处理程序会触发两封电子邮件。

这是一个已知的问题?我该如何解决这个问题?我可以通过数据库驱动的脚本来做到这一点,但本质上,我想处理 SSIS 本身的情况。谢谢你的帮助。

4

1 回答 1

4

请记住,事件处理程序将在触发操作发生时引发事件。因此,不能保证您只使用事件处理程序获取一个事件(当然也有一些例外)。

如果您只想保证一封电子邮件,那么我建议您不要通过 OnError 事件发送电子邮件,而是将作为控制流一部分的“发送电子邮件任务”链接到带有“故障约束”的 ExecuteSQL 任务。

或者,您还可以在 OnError 事件中设置一个等于 true 的用户变量,然后根据该变量发送电子邮件,其中包含一个“完成时”约束和一个检查错误用户变量值的表达式。这样,OnError 事件引发多少次并不重要,因为该任务只有在至少引发一次时才会运行。

于 2012-07-17T18:22:49.493 回答