如何从SSIS中的OnError事件处理程序发送一封邮件

时间:2015-04-18 10:11:35

标签: ssis business-intelligence ssis-2012 msbi

我有一个包含多个包含和任务的包。如果在加载过程中发生任何错误,我使用错误事件处理程序中的发送邮件任务来发送邮件。但是,无论何时包中发生错误,发送邮件任务一直执行两次或三次(发送邮件)具有不同的错误描述。 我需要收到一封包含所有错误说明而非多封邮件的邮件。

请告诉我如何实现这一目标。

1 个答案:

答案 0 :(得分:2)

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

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