Ssis-2016
如果特定任務失敗,SSIS 確保序列容器未標記為失敗
考慮 SSIS 包的以下場景:
序列容器包含兩個用於從 Excel 文件載入數據的作業:
- 作業 A:嘗試按照特定文件定義從 Excel 文件載入數據。
- 作業 B:如果作業 A 失敗,將執行作業 B。
在容器之外,執行最終任務以重置數據。
然而,我遇到的問題是,如果 JOB A 失敗,即使 JOB B 接管並設法正確處理文件,容器也會被標記為失敗。
雖然我可以通過使用一些變數和“Precedent Constraint”來規避這個問題(這可以在上面的第二個螢幕截圖中看到),但我想知道是否有更優雅的方法,我只是確保 Sequence Container 不是標記為 failed 是第一個載入數據的任務失敗。
現在,我首先想到的是
MaximumErrorCount
容器上屬性的使用。但是,我在容器中有其他任務,如果它們失敗,它可能會破壞邏輯。也許在現有容器中為僅 JOBS A 和 B 嵌套另一個容器將是前進的方向?
但實際上(我是一個絕望的理想主義者)我希望找到的是 JOB A 的某種屬性,即如果工作 A 失敗,不要以最簡單的方式將容器標記為失敗。想法?
您是否查看過序列中任務的 OnError 事件處理程序的Propagate變數?
檢查此連結以獲取資訊。基本上,您禁用 OnError 事件的傳播,因此祖先任務(或本例中的序列)不會收到錯誤。