如何在SSIS中仅从OneError事件处理程序发送一封邮件

如何在SSIS中仅从OneError事件处理程序发送一封邮件,ssis,business-intelligence,ssis-2012,msbi,Ssis,Business Intelligence,Ssis 2012,Msbi,我有一个包,其中包含多个contains和任务。我在错误事件处理程序中使用了Send Mail task来发送邮件,如果在加载过程中发生任何错误。但每当包中发生错误时,发送邮件任务都会以不同的错误描述执行两到三次(发送邮件)。 我只需要收到一封带有所有错误描述的邮件,而不是多封邮件 请告诉我如何做到这一点。不要立即在事件处理程序中发送邮件,而是先将所有错误累积到字符串数组,然后使用控制流中的另一个脚本任务,通过“缝合”字符串数组中的项目来组成邮件正文。最后,在控制流中的发送邮件任务中使用“缝合”

我有一个包,其中包含多个contains和任务。我在错误事件处理程序中使用了Send Mail task来发送邮件,如果在加载过程中发生任何错误。但每当包中发生错误时,发送邮件任务都会以不同的错误描述执行两到三次(发送邮件)。 我只需要收到一封带有所有错误描述的邮件,而不是多封邮件


请告诉我如何做到这一点。

不要立即在事件处理程序中发送邮件,而是先将所有错误累积到字符串数组,然后使用控制流中的另一个脚本任务,通过“缝合”字符串数组中的项目来组成邮件正文。最后,在控制流中的发送邮件任务中使用“缝合”消息

  • 创建类型为object的变量
  • 在控制流中,将除发送邮件任务外的所有任务放在序列容器中
  • 为在#2中创建的序列容器的On Error事件添加一个事件处理程序,然后添加一个脚本任务,将System::ErrorDescription的值存储到字符串数组中。确保不会覆盖上次错误中字符串数组的内容。将字符串数组存储到Object类型的变量
  • 在控制流中,添加一个脚本任务,将字符串数组的内容“缝合”到单个变量中,用作发送邮件任务的主体。通过故障优先约束将脚本任务连接到序列容器
  • 在脚本任务之后添加发送邮件任务

  • 可能的重复,而不是使用对象类型的变量,我已将此错误描述存储在一个表中。稍后,我已使用此表,并将所有错误描述保留在邮件正文中。无论如何,逻辑是一样的。谢谢…-)无论成功与否,都将发送电子邮件?