非常感谢您的帮助和见解
在 SSIS 中,我需要 ForceExecutionResult = Success for the Grandparent Container
这就是我目前设置包裹的方式:
父包 = A
子包 = B
- 执行包任务从 A 调用 B
- 如果 B 失败并显示特定错误代码,我将重试 B
我使用脚本任务通过 A 的执行包任务中的 OnError 事件处理程序重试 B。
我的思路:
- A 的执行包任务 OnError 事件处理程序是脚本任务的父容器
- A 的执行包任务是脚本任务的祖父容器
当 B 重试成功时,祖父容器(A 的执行包任务)如何 ForceExecutionResult = Success?
现在即使 B 重试成功,A 的执行包任务仍然显示红色 = 失败,因为 B 的第一次尝试失败。
寻找在脚本任务中使用 C# 或 VB 执行此操作的编程方式。
我正在使用 SSIS 2008
感谢阅读
最佳答案
主要建议是不要在 OnError
之后重新运行包 B事件。您需要调用 B,确保它不会使包 A 失败,评估包 B 的结果并决定要做什么。
创建
For Loop
容器并使其运行一定次数(=最大运行次数,如while i < 5 do
)。设置
Execute Package
任务不会因错误而使父级和整个包失败。评估
Script Task
中的执行代码并退出For Loop
成功/失败条件下的容器。 (比如设置 i=5)。
也许你可以从 C# 执行程序包 B Script Task
- 检查对象模型如何做到这一点。如果我找到方法,我会更新我的答案。
关于c# - SSIS如何强制祖父容器执行结果成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19554684/