强制For循环任务失败

问题描述:

我对SSIS很陌生,所以也许这是微不足道的,但到目前为止,我还没有能够通过谷歌或以前的问题找到任何有用的信息。强制For循环任务失败

首先,我有一个包需要一个来自SSRS订阅的Excel表格,并将其发送给相关方。问题是有时候数据还没有可用,所以除了命名列以外,电子表格是完全空的。我试图在包中包含逻辑,在For循环中检查报告是否为空。如果是,通知那些方将会有延迟并且该程序包将以30分钟的间隔运行2次。如果报告在第三次尝试后仍然为空,那么它会发送一封电子邮件,表示没有可用的数据,并且明天将再次尝试。

我的问题是,我不知道如何强制for循环任务失败,如果其循环计数达到一个数字。

+0

您可以使用脚本任务,从循环中抛出一个异常,并在你的外循环级处理。 – saarrrr

+0

如果循环计数达到一个数字?或者,你的意思是如果Excel文件内的行数大于某个数字?我个人会用一张桌子来控制这个。 –

+0

@ Tab Alleman - 我的意思是,如果循环计数达到一个数字。 @saarrrr不幸的是,我对SSIS和脚本编程确实很陌生,基本上我没有经过真正的培训就陷入了这个问题,而且我陷入了困境。将尝试找到详细说明如何做的事情。 –

这样的东西应该可行......在控制流中添加一个脚本组件,并将您的循环计数器包含在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

这个概念就像一个魅力,谢谢你。 –