2017-04-27 4 views
0

Dies ist das Szenario: ssis scenarioSSIS Prioritäten setzen von vielen Aufgaben zu einem

Die erste Aufgabe, die Anwesenheit einiger Dateien überprüfen, schreibt Variablen und mit Ausdrücken überprüfen, welche Datenflußtask läuft. Und hier funktioniert alles.

Ich möchte die letzte Aufgabe aktiviert haben, wenn alle vorherigen Aufgaben abgeschlossen wurden. Einige Aufgaben werden möglicherweise nicht ausgeführt. Vielleicht sind nur vier von ihnen verarbeitet worden. Boolesche Variablen in den Ausdrücken bestimmen ihre Ausführung.

Ich habe versucht, die Einschränkung als "Ausdruck oder costraint" zu setzen und zu überprüfen, ob das Ergebnis positiv ist und alle Nebenbedingungen durch logische ODER gruppiert sind. Wenn jedoch eine der Aufgaben beendet ist, wird die letzte Aufgabe gestartet. Stattdessen sollte ich warten, bis alle Aufgaben abgeschlossen sind, bevor mit dem letzten begonnen wird.

Wenn eine andere Costraints-Gruppierung festgelegt ist (logische UND-Verknüpfung), wird die letzte Task nicht ausgeführt, da einige Datenfluss-Tasks nicht ausgeführt werden.

Irgendwelche Ideen?

Danke.

+0

Verwenden Sie eine boolesche Variable say IsGoodToGo, setzen Sie sie standardmäßig auf TRUE. Wenn eine der oben genannten Aufgaben fehlschlägt, setzen Sie sie mit "expressionTask" auf "false" und überprüfen Sie vor der letzten Aufgabe, ob sie wahr ist, und setzen Sie die Ausführung fort. – observer

Antwort

1

Um nur den letzten Schritt auszuführen, nachdem alle mittleren Aufgaben abgeschlossen wurden, legen Sie die erste Aufgabe und alle mittleren Aufgaben in einen einzigen Sequenzcontainer. Zeichnen Sie dann eine Rangfolgeneinschränkung vom Container bis zur letzten Aufgabe.

+0

Ja, ich war mir nicht sicher, aber das funktioniert. –

+0

Vielen Dank! :) – Andryx93

Verwandte Themen