Ssis-2016

如果特定任務失敗,SSIS 確保序列容器未標記為失敗

  • May 22, 2020

考慮 SSIS 包的以下場景:

序列容器包含兩個用於從 Excel 文件載入數據的作業:

  • 作業 A:嘗試按照特定文件定義從 Excel 文件載入數據。
  • 作業 B:如果作業 A 失敗,將執行作業 B。

在容器之外,執行最終任務以重置數據。

Job A 執行成功:容器被標記為已成功完成。

然而,我遇到的問題是,如果 JOB A 失敗,即使 JOB B 接管並設法正確處理文件,容器也會被標記為失敗。

Job A 失敗:JOB B 執行成功,但是容器被標記為失敗。

雖然我可以通過使用一些變數和“Precedent Constraint”來規避這個問題(這可以在上面的第二個螢幕截圖中看到),但我想知道是否有更優雅的方法,我只是確保 Sequence Container 不是標記為 failed 是第一個載入數據的任務失敗。

現在,我首先想到的是MaximumErrorCount容器上屬性的使用。但是,我在容器中有其他任務,如果它們失敗,它可能會破壞邏輯。

也許在現有容器中為僅 JOBS A 和 B 嵌套另一個容器將是前進的方向?

但實際上(我是一個絕望的理想主義者)我希望找到的是 JOB A 的某種屬性,即如果工作 A 失敗,不要以最簡單的方式將容器標記為失敗。想法?

您是否查看過序列中任務的 OnError 事件處理程序的Propagate變數?

檢查此連結以獲取資訊。基本上,您禁用 OnError 事件的傳播,因此祖先任務(或本例中的序列)不會收到錯誤。

引用自:https://dba.stackexchange.com/questions/227958