如何从 SSIS 中的 OnError 事件处理程序只发送一封邮件
How to send ONLY one mail from OnError event handler in SSIS
我有一个包含多个包含的包,it.I 中的任务已使用 错误事件处理程序中的发送邮件任务 在加载期间发生任何错误时发送邮件.但是每当包发生错误时,发送邮件任务 已经执行了两次或三次(发送邮件),错误描述不同。
我只需要 一封包含所有错误描述的邮件,而不是多封邮件。
请告诉我如何实现。
不要立即在您的事件处理程序中发送邮件,而是先将所有错误累积到一个字符串数组,然后在您的控制流中使用另一个脚本任务,由 "stitching" 个项目组成邮件正文在字符串数组中。最后,在控制流的发送邮件任务中使用 "stitched" 消息。
- 创建对象类型的变量。
- 在您的控制流中,将除发送邮件任务之外的所有任务都放在一个序列容器中。
- 为在#2 中创建的序列容器的 On Error 事件添加一个事件处理程序,然后添加一个脚本任务,将 System::ErrorDescription 的值存储到一个字符串数组中。确保您没有覆盖上一个错误中的字符串数组的内容。将字符串数组存储到 Object 类型的变量中。
- 在控制流中,添加脚本任务"stitch"将字符串数组的内容放入单个变量中,用作发送邮件任务的主体。通过失败优先约束将脚本任务连接到序列容器。
- 在脚本任务后添加发送邮件任务。
我有一个包含多个包含的包,it.I 中的任务已使用 错误事件处理程序中的发送邮件任务 在加载期间发生任何错误时发送邮件.但是每当包发生错误时,发送邮件任务 已经执行了两次或三次(发送邮件),错误描述不同。 我只需要 一封包含所有错误描述的邮件,而不是多封邮件。
请告诉我如何实现。
不要立即在您的事件处理程序中发送邮件,而是先将所有错误累积到一个字符串数组,然后在您的控制流中使用另一个脚本任务,由 "stitching" 个项目组成邮件正文在字符串数组中。最后,在控制流的发送邮件任务中使用 "stitched" 消息。
- 创建对象类型的变量。
- 在您的控制流中,将除发送邮件任务之外的所有任务都放在一个序列容器中。
- 为在#2 中创建的序列容器的 On Error 事件添加一个事件处理程序,然后添加一个脚本任务,将 System::ErrorDescription 的值存储到一个字符串数组中。确保您没有覆盖上一个错误中的字符串数组的内容。将字符串数组存储到 Object 类型的变量中。
- 在控制流中,添加脚本任务"stitch"将字符串数组的内容放入单个变量中,用作发送邮件任务的主体。通过失败优先约束将脚本任务连接到序列容器。
- 在脚本任务后添加发送邮件任务。