2015-11-06 102 views
0

我對SSIS很陌生,所以也許這是微不足道的,但到目前爲止,我還沒有能夠通過谷歌或以前的問題找到任何有用的信息。強制For循環任務失敗

首先,我有一個包需要一個來自SSRS訂閱的Excel表格,並將其發送給相關方。問題是有時候數據還沒有可用,所以除了命名列以外,電子表格是完全空的。我試圖在包中包含邏輯,在For循環中檢查報告是否爲空。如果是,通知那些方將會有延遲並且該程序包將以30分鐘的間隔運行2次。如果報告在第三次嘗試後仍然爲空,那麼它會發送一封電子郵件,表示沒有可用的數據,並且明天將再次嘗試。

我的問題是,我不知道如何強制for循環任務失敗,如果其循環計數達到一個數字。

+0

您可以使用腳本任務,從循環中拋出一個異常,並在你的外循環級處理。 – saarrrr

+0

如果循環計數達到一個數字?或者,你的意思是如果Excel文件內的行數大於某個數字?我個人會用一張桌子來控制這個。 –

+0

@ Tab Alleman - 我的意思是,如果循環計數達到一個數字。 @saarrrr不幸的是,我對SSIS和腳本編程確實很陌生,基本上我沒有經過真正的培訓就陷入了這個問題,而且我陷入了困境。將嘗試找到詳細說明如何做的事情。 –

回答

1

這樣的東西應該可行......在控制流中添加一個腳本組件,並將您的循環計數器包含在ReadOnly變量列表中。以下腳本將在LoopCount = 0時成功,但一旦LoopCount = 1時將失敗。 script task set up 進口系統

Imports System.Data 
Imports System.Math 
Imports Microsoft.SqlServer.Dts.Runtime 
Public Class ScriptMain 
Public Sub Main() 
    If CInt(Dts.Variables("LoopCount").Value.ToString) = 0 Then 
     Dts.TaskResult = Dts.Results.Success 
    Else 
     Dts.TaskResult = Dts.Results.Failure 
    End If 
End Sub 
End Class 
+0

這個概念就像一個魅力,謝謝你。 –