2013-06-04 17 views
5

Wykonuję pakiet SSIS w wierszu poleceń pod numerem dtexec.exe. Pakiet wywołuje MessageBox.Show() i MsgBox() (odpowiednio C# i VB.NET) w celu pokazania błędów. Pudełka zawieszają zautomatyzowany procesor roboczy, ponieważ czeka na zamknięcie skrzyni.Jak wyłączyć interaktywne okna wiadomości z wnętrza pakietu SSIS?

Byłem pod the impression, że pola powinny być ukryte, gdy nie jest w trybie interaktywnym. Czy skrzynki komunikatów mogą zostać wyłączone bez modyfikowania pakietu SSIS? Pakiet pochodzi od producenta oprogramowania i naprawdę nie powinienem go zmieniać.

EDIT: Pełne polecenie używam (edytowane aby usunąć szczegóły)

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: Przykład kodu okno komunikatu. Jest to zadanie skryptowe.

Public Sub Main() 
    MsgBox("Failed to read/parse input file or generic database failure while running " + Dts.Variables("System::PackageName").Value.ToString() + ". Please check the layout of the feed and database connectivity.") 
    Dts.TaskResult = ScriptResults.Failure 
End Sub 

EDIT3: Jeśli ktokolwiek w przyszłości jest zainteresowany kodem do przetestowania dla InteractiveMode. Musi on również zostać przekazany za pomocą ReadOnlyVariables zadania skryptowego. W efekcie zmodyfikowałem pakiet, ponieważ były inne problemy.

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

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

Nie jestem pewien, dlaczego miałeś down the vote i VtC. Wydaje się odpowiednie pytanie na stronie. Jak wygląda skrypt vb/C#? Czy sprawdza stan zmiennej interaktywnej SSIS? – billinkc

+0

Nie to nie patrzy na zmienną InteractiveMode. To jest od dostawcy, więc dokonywanie zmian nie jest smutną opcją. Zmieniłem moje pytanie i umieściłem przykład wywołania skrzynki wiadomości. – merekel

+0

Nie sądzę, że można powiązać wykonanie pakietu z funkcją MessageBox. IMO, musisz zmodyfikować zadanie skryptu, aby zapobiec pojawianiu się tych pól. BTW, przegłosowałem to pytanie, aby było to uzasadnione, ponieważ uważam, że pytanie jest uzasadnione. – rvphx

Odpowiedz

0

Jeśli ktoś w przyszłości jest zainteresowany kodem do przetestowania dla InteractiveMode. Musi on również zostać przekazany za pomocą ReadOnlyVariables zadania skryptowego. W efekcie zmodyfikowałem pakiet, ponieważ były inne problemy.

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

C# 
if ((bool)Dts.Variables["System::InteractiveMode"].Value == true) 
    .... 
} 
Powiązane problemy