2013-06-04 6 views
5

Ich führe ein SSIS-Paket in der Befehlszeile mit dtexec.exe aus. Das Paket ruft MessageBox.Show() und MsgBox() (C# bzw. VB.NET) auf, um Fehler anzuzeigen. Die Boxen hängen den automatischen Jobprozessor ab, da er auf das Schließen der Box wartet.Wie deaktiviere ich interaktive Nachrichtenfelder innerhalb eines SSIS-Pakets?

Ich war unter the impression, dass die Boxen ausgeblendet werden sollten, wenn nicht im interaktiven Modus. Können die Meldungsfelder unterdrückt werden, ohne das SSIS-Paket zu ändern? Das Paket stammt von einem Softwareanbieter und ich sollte es wirklich nicht ändern.

EDIT: Der vollständige Befehl verwende ich (edited Details zu entfernen)

C:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe /F D:\Path\To\Package.dtsx /Conn DBConnection;"Provider=SQLOLEDB;Data Source=SERVER;Initial Catalog=DB;Integrated Security=SSPI;Connect Timeout=60" \Package.Variables[User::InputFileName].Properties[Value];C:\Path\To\Input.csv 

EDIT2: Beispiel für Box-Code-Nachricht. Dies ist in einer Skriptaufgabe.

EDIT3: Wenn jemand in der Zukunft interessiert ist, den Code für InteractiveMode zu testen. Es muss auch über die ReadOnlyVariables der Script Task übergeben werden. Ich habe das Paket geändert, da es andere Probleme gab.

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

C# 
if ((bool)Dts.Variables["System::InteractiveMode"].Value == true) 
    .... 
} 
+0

Nicht sicher, warum Sie den Downvote und die VtC hatten. Scheint eine passende Frage für die Seite. Wie sieht das vb/C# -Skript aus? Untersucht es den Status des SSIS-Variablen-InteractiveMode? – billinkc

+0

Nein, es wird nicht auf die Variable InteractiveMode geschaut. Dies ist von einem Anbieter, so dass Änderungen keine große Wahl ist. Ich habe meine Frage bearbeitet und ein Beispiel für den Message-Box-Call eingegeben. – merekel

+0

Ich glaube nicht, dass Sie die Paketausführung an die MessageBox-Funktion binden können. IMO, müssen Sie die Script-Aufgabe ändern, um zu verhindern, dass sie die Boxen öffnet. BTW, ich habe die Frage nach oben gestellt, um es legitim zu machen, da ich denke, dass die Frage legitim ist. – rvphx

Antwort

0

Wenn jemand in der Zukunft an dem Code interessiert ist, um für InteractiveMode zu testen. Es muss auch über die ReadOnlyVariables der Script Task übergeben werden. Ich habe das Paket geändert, da es andere Probleme gab.

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

C# 
if ((bool)Dts.Variables["System::InteractiveMode"].Value == true) 
    .... 
} 
Verwandte Themen