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)
....
}
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
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
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