2012-07-17 67 views
4

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

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

+0

我在另一个问题上修改了我的旧回答,以更好地说明我在做什么。 http://stackoverflow.com/questions/2560452/ssis-send-email-on-error-sending-multiple-errors/2561673#2561673 – 2012-07-17 20:45:22

回答

4

请记住,事件处理程序会在触发操作发生时随时触发事件。所以,你不能保证只使用一个事件处理程序来获得一个事件(当然有一些例外)。

如果你只想保证一封邮件,那么我会建议不要通过OnError事件发送邮件,而是将一个'发送邮件任务'作为控制流的一部分,并且连接到ExecuteSQL任务和一个'Failure Constraint ”。

或者,您还可以在OnError事件中设置一个等于true的用户变量,然后根据带有'On Completion'约束的邮件发送电子邮件并添加一个表达式来检查Error用户变量的值。这样,无论OnError事件发生多少次都没有关系,因为任务只会在至少提升一次时才会运行。

+2

我更喜欢第二个选项。会试试看。谢谢! – rvphx 2012-07-17 19:42:20

相关问题