2011-03-25 92 views
1

我有一個SSIS包爲Foreach循環容器中的每個記錄發送郵件。在發送電子郵件後,我會向「發送給[email protected]的郵件」中的變量(在腳本任務中)添加一些文本。處理SSIS中的發送郵件任務失敗

但是,我還想記錄何時電子郵件失敗。在發送郵件任務後添加了另一個腳本任務,並將約束更改爲「失敗」。然後,我將其中一個電子郵件地址更改爲無效格式(如「abc」)。當我運行它時,發送郵件任務失敗,但沒有通過具有失敗約束的腳本任務。換句話說,整個軟件包因爲這個失敗而停下來。我嘗試過使用FailPackageOnFailure和FailParentOnFailure屬性來搞亂,但我仍然無法讓它工作。

有沒有更好的方式來處理呢?我認爲我的方法很簡單,但這不是預期的行爲(對我來說,無論如何)。

我將不勝感激任何建議或意見。 謝謝!

回答

3

你能陷阱onerror事件處理程序錯誤的發送郵件任務?

+0

好主意。我將腳本任務添加到「發送郵件」任務的「OnError」事件中。當我用我的「壞」電子郵件地址運行它時,腳本任務圖標變爲綠色(表示它已處理)。不幸的是,發送郵件任務仍然會導致程序包失敗。對於發送郵件任務,我將FailPackageOnFailure和FailParentOnFailure設置爲「False」。感謝您的想法,但我不確定接下來會發生什麼(?) – Loki70 2011-03-25 14:37:31

+0

您是否能夠在發送郵件任務後使用完成約束(而不是成功或失敗),以便程序包繼續執行,而不管成功與否特定任務? – grapefruitmoon 2011-03-25 14:48:39

+0

就是這樣!我不知道爲什麼我沒有想到這一點。我想我只是習慣了「成功」的約束,我沒有正確地思考它。非常感謝您的幫助! – Loki70 2011-03-25 15:34:22

0

前段時間我做了同樣的事情,我有一個變量鎖的問題: 我在一些變量(登錄名,密碼,SSL啓用...)時檢索SMTP憑證,當我嘗試使用相同的變量發送另一封電子郵件,但仍然被第一個腳本任務鎖定(因此失敗)。 我希望獲得變量並在第一個電子郵件腳本任務中以編程方式釋放它們(try-catch-finally),所以我確信在第二個電子郵件腳本中不會有變量鎖。

希望這個幫助