2014-10-31 35 views
1

我正在使用Visual Studio 2012.我創建了一個使用序列容器的SSIS解決方案。SSIS序列容器不會失敗

SSIS包的一點是這樣的。每第3個和第5個工作日,我需要創建文件夾並將文件複製到其中。在第三個工作日文件被複制到相應的第三個工作日文件夾。同樣在第5個工作日。這些文件夾和文件位於名爲yyyymm的父文件夾中,即201411.兩者的文件夾結構有點奇怪,但這超出了我的控制範圍,而不是問題所在。

我找不出如何計算工作日,所以我希望設計SSIS包的方式,以便單個SSIS包可以完成這兩個工作,就是使用成功/失敗切換優先約束。

我設計了流程,以便第一次運行程序包時創建Day3文件夾,然後複製這些文件。第二次運行day3軟件包時會注意到Day3文件夾已經創建並失敗。這是失敗的意圖。我希望包的失敗影響父親序列容器和序列容器完全失敗。在發生這種故障之後,我希望軟件包繼續沿着故障約束,創建Day5文件夾並複製這些文件。

問題是任務失敗,但是這會完全停止包。該流程不會沿故障約束繼續並執行Day5功能。我嘗試過調整包中的屬性,順序容器以及調整傳播系統變量,正如我通過互聯網搜索所看到的那樣,但我無法獲得預期的工作流。

有可能是一個更好的方法來做這個整個過程,我接受建議,但這個查詢的真正目的是弄清楚如何讓序列容器作爲一個整體失敗,並讓包繼續執行Day5功能。

第3個工作日 Third

5個工作天 5th

SSIS包 enter image description here

期望的結果。如果子包在其中失敗,則順序容器將失敗。 SSISFAIL

針對下面的評論。我試圖設置一個布爾約束,但這也不起作用。不知道我是否正確做到了這一點。 Boolean

回答

0

這樣做的另一種方法是在包級別上設置一個布爾變量,一旦Day3失敗,它將被設置爲False。在失敗優先約束上,您將檢查以查看此變量的值。如果變量的值爲FALSE(或true),則可以繼續使用Day5 Container,否則忽略它。

我想到的另一件事情,你可以在第3天容器後切換AND/OR優先約束。只是想檢查一下,看看這是否會改變行爲。

+0

我試圖將布爾邏輯添加到約束並切換AND/OR,但仍然無法使Sequence容器失敗。 – 2014-10-31 16:46:12

+0

添加一個腳本任務(第3天容器之後)並明確地將布爾變量設置爲False。這兩個之間的優先約束應該是我相信的失敗。我會進一步調查並在一段時間內回覆您。同時,請嘗試此解決方案。 – rvphx 2014-10-31 17:14:34

+0

如果你可以添加一個有用的圖像。我有點困惑什麼地方。 – 2014-10-31 17:41:21