2016-07-24 25 views
0

Ich möchte wissen, wie das Paket von der zweiten Aufgabe (nicht von der ersten) ausgeführt wird.Wie eine bestimmte Aufgabe aus ssis-Paket mit C# ausgeführt werden?

Das ganze Paket korrekt durch den einfachen dts Code ausgeführt wird:

string pkgLocation; 
     Package pkg; 
     Application app; 
     DTSExecResult pkgResults; 

     pkgLocation = "<packagepath>\CalculatedColumns.dtsx"; 
     app = new Application(); 
     pkg = app.LoadPackage(pkgLocation, null); 
     pkgResults = pkg.Execute(); 

Wich nur für volle Paket Ausführung hilft, aber auf bestimmte Aufgabenausführung bezieht sich nicht.

Danke.

+0

Mögliches Duplikat von [Ausführen der SSIS-Aufgabe aus der C# -Anwendung] (http://StackOverflow.com/questions/8827987/Executing-ssis-task-from-c-sharp-application) –

+0

Die Antwort gibt es nicht, was ich ' Ich suche aber nach. –

Antwort

0

Hmm, SSIS-Pakete werden als Ganzes ausgeführt. Sie können also das Wetter nicht steuern, um es von der ersten, zweiten oder dritten Aufgabe aus zu starten. Aber - Sie können die 1. Aufgabe dynamisch deaktivieren, so dass sie von der 2. beginnen würde. So - Set Disable Eigenschaft der ersten Aufgabe, wie beschrieben in Executing SSIS task from C# application question

0

Wir haben dies durch Rangfolgeneinschränkungen verwenden und ein Paket Variable, die auf das Paket zum Zeitpunkt der Ausführung übergeben wird.

Fügen Sie zum Beispiel eine Variable @Step zu Ihrem Paket genannt, und wenn Sie das Paket ausführen, wenn Sie bei der zweiten Aufgabe gestartet werden soll, die erste Aufgabe überspringen, übergeben Sie den Wert 2 auf die @Step Variable.

Dann in Ihrem Paket mit einem Dummy-Skript-Task, die nichts tun zu starten. Betrachten Sie es als "Schritt 0". Überprüfen Sie in der Rangfolgeneinschränkung von Schritt 0 bis Schritt 1 den Wert @Step. Wenn es nicht 1 ist, dann gehe nicht zu Schritt 1.

Habe noch eine Rangfolgezwingung, die von Schritt 0 zu Schritt 2 geht, und tue dasselbe dort, überprüfend @Step für den Wert 2. Und so weiter für alle möglichen Schritte, die Sie überspringen/beginnen möchten. Wenn es eine Menge gibt, kann es sehr unordentlich werden, aber das ist der Preis, den Sie dafür bezahlen, dass Sie diese Art der Kontrolle über Ihre Paketausführung wünschen.