5

非常感谢您的帮助和洞察力

在 SSIS 中,我需要 ForceExecutionResult = Success for the Grandparent Container

这就是我当前设置包的方式:
父包 = A
子包 = B

- 执行包任务从 A 调用 B
- 如果 B 因特定错误代码而失败,我重试 B

我通过 OnError 事件重试 B使用脚本任务在 A 的执行包任务中的处理程序。

以我的思维方式:
- A 的执行包任务 OnError 事件处理程序是脚本任务的父容器
- A 的执行包任务是脚本任务的祖父容器

我如何 ForceExecutionResult = 祖父容器成功(A 的执行包任务)当 B重试成功?

现在即使 B 重试成功,由于第一次 B 尝试发生的失败,A 的 Execute Package Task 仍然显示 Red = failure。

寻找在脚本任务中使用 C# 或 VB 执行此操作的编程方式。

我正在使用 SSIS 2008

谢谢阅读

4

1 回答 1

1

主要建议是不要在OnError事件发生后重新运行包 B。你需要打电话给 B,确保它不会失败包 A,评估包 B 的结果并决定做什么。

  1. 创建一个For Loop容器并使其运行一定次数(= 最大运行次数,如 in while i < 5 do)。

  2. Execute Package任务设置为不使父级和整个包出错。

  3. 在成功/失败条件下评估Script Task并退出容器中的执行代码。For Loop(例如通过设置 i=5)。

可能您可以从 C# 执行包 B Script Task- 检查对象模型如何执行此操作。如果我找到方法,我会更新我的答案。

于 2013-11-21T17:02:47.840 回答