【问题标题】:How to send ONLY one mail from OnError event handler in SSIS如何从 SSIS 中的 OnError 事件处理程序仅发送一封邮件
【发布时间】:2015-04-18 10:11:35
【问题描述】:

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

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

【问题讨论】:

标签: ssis business-intelligence ssis-2012 msbi


【解决方案1】:

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

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

【讨论】:

  • 我没有使用对象类型的变量,而是将此错误描述存储在一个表中,后来我使用了这个表并将所有错误描述保存在邮件正文中。反正逻辑是一样的。谢谢.. :-)
  • 不管成功与否都会发送邮件?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-05
  • 2018-10-21
  • 1970-01-01
相关资源
最近更新 更多