SSIS脚本任务在计划时不起作用

时间:2013-06-24 11:28:12

标签: sql-server ssis

我找不到类似的问题。我有一个SSIS包,其中包含一个Visual Basic脚本任务,其中包含以下行 - msgbox(“some text”)。它从BIDS运行良好并从MSDB手动执行,但是当我在SQL Server代理程序中安排它时,程序包似乎很有趣,直到这一点并完成。但是消息框不会出现,并且在该运行之后没有任何实际任务。预定的工作报告完成并成功。你能指出我正确的解决方案,我相信它会与SSIS代理帐户及其安全性有关但却找不到任何东西。有谁知道如何解决这个问题?

这是我的代码的快照。正如你所看到的,我正在解雇大量的消息框,试图记录我的包的工作步骤。

xworkbook = ExcelObject.Workbooks.Open("C:\xxx.csv") 
xworksheet = DirectCast(xworkbook.Sheets(1), Excel.Worksheet) 
MsgBox("csv") 
xworksheet.Range("B:B").Replace(What:=",", Replacement:="") 
MsgBox("replace 1") 
xworksheet.Range("B:B").Replace(What:=".", Replacement:="") 
MsgBox("replace 2") 
xworkbook.SaveAs("C:\xxx.xlsx", FileFormat:=51) MsgBox("saved")

3 个答案:

答案 0 :(得分:3)

我认为它不起作用的原因是当您将SSIS任务作为预定作业运行时,它不会在您的帐户上下文中运行,而是在SQL Server代理和消息框的服务帐户中运行不会为你显示。消息框对于非交互式任务无效。

答案 1 :(得分:2)

@jpw在头上敲了一下“消息框对非交互式任务无效。”

要使其工作,您需要从代码中删除消息框或检查布尔变量System::InteractiveMode

的值

代码约

If CBool(Dts.Variables("System::InteractiveMode").Value) = True Then
    ....
End if

各种参考文献

答案 2 :(得分:2)

您可以通过更改流程来解决此问题,从而无需用户干预。除了调试之外,你没有理由在SSIS中有一个消息框。