2013-06-11 77 views
2

我建立一個簡單的集成服務項目,讀取的CSV文件「待定」目錄下,加載每一個到一個臨時表,並將該文件移動到「已完成」或「失敗」目錄取決於它是否成功加載。 「完成」和「失敗」目錄的位置在項目參數中設置。SSIS文件系統任務失敗,沒有錯誤

的問題是,在「移動到失敗目錄」任務也永遠不會執行,即使所有的任務,導致它成功執行。令人沮喪的是沒有產生錯誤信息。我已經嘗試在任務的事件處理程序上設置一個斷點,但斷點從來不會被打中。這就好像任務根本就沒有(我已經檢查過Disabled屬性沒有被無意地設置在任務上,但事實並非如此)。

這很奇怪,因爲「移動已完成」任務工作正常,這兩項任務是相同的保存他們寫的目錄。這兩個目錄都存在並具有相同的訪問權限,但我想如果它是權限問題會有某種錯誤。

SSIS flow

在上面的圖中,它是在不工作的右手側的MoveToFailed任務。它可以通過多種方式達到 - 重複文件或未知文件或包含無效記錄的文件。不管它如何被調用,任務都不會執行。

+0

你能抽出控制流的屏幕截圖? – billinkc

+0

@billinkc:完成 –

+0

優秀。所以當這些不好的事情發生時,程序包是否以錯誤結束,或者它們是邏輯錯誤,因此程序包應該做些什麼?我在GetValidInvalidRecordCount上看到這個表達式,這讓我認爲路徑是一個邏輯錯誤。但是MarkInvalidFile和其他腳本任務看起來像只限於成功。 – billinkc

回答

1

您需要更改優先約束中MoveToFailed所以他們在「邏輯或」模式。
選擇其中一個約束到該組件並單擊鼠標右鍵,選擇「編輯」有一個在底部的單選按鈕標註爲「邏輯或。一個約束必須評估爲真'。

+0

MarkDuplicate正在成功完成,並且在先行約束上沒有表達式。他們沒有什麼可以在這個約束上進行或。你有不同的看法嗎? – billinkc

+0

您將它寫入的方式在執行該任務之前必須爲真,才能導入該任務的所有三個優先約束。如果你像我解釋的那樣改變它,那麼當任何一個優先約束爲真時,任務都會執行。 –

+0

是的,這是優先約束。我的一個菜鳥錯誤;我最熟悉的ETL/EAI工具會觸發任何輸入(OR)上的任務。 –

相關問題