SSIS总是最后运行一个特定的步骤,而不连接到每个父节点



我有一个包含大约50个不同步骤的SSIS包。许多步骤将并行运行。

我想在包的末尾放一个ScriptTask,这样,无论成功还是失败,我都会发送一封电子邮件,报告包运行的状态(包在运行时将事情记录到数据库中,因此ScriptTask涉及查询状态表并将其格式化为HTML)。

是否有一种方法可以让一个任务在所有其他任务都完成运行或由于依赖关系而被跳过时执行?

我试图将我的任务添加到OnError事件处理程序,但是当任务并行失败时,它会上升到n次。我不想让每一步都以OnFailure条件流向ScriptTask,因为由于连接的数量,它将使包在功能上无法使用。我还认为,这样连接它并不能确保它运行,因为一些步骤会被跳过,因此没有成功或失败的状态。

我可以通过两种不同的方式做到这一点

  1. 为控制流添加序列容器
  2. 移动序列容器内的所有现有任务
  3. 在序列容器外添加脚本任务。通过双击
  4. 行,将优先级约束从Success更改为Completion

选项b

  1. 创建包含脚本任务的包
  2. 创建一个运行原始包的主包,然后用脚本任务调用该包,根据需要传递任何变量以生成电子邮件。

最新更新