Möglichkeiten des Sequenzcontainers

Dieser Artikel bietet einen kurzen Blick auf die Möglichkeiten des Sequenzcontainers um Aktionen zu gruppieren und gezielt zu aktivieren oder deaktivieren.

Ein Sequenzcontainer bewirkt in erster Linie eine Gruppierung von SSIS-Task. Dies kann zum einen der Dokumentation dienen, zum anderen wird aber auch der Entwurf eines komplexen Paketes erleichtert, da die ganze Gruppe minimiert oder zu Testzwecken deaktiviert werden kann. Diese Deaktivierung erfolgt über das Kontextmenü oder die Eigenschaften des Sequenzcontainers. Der Wert für Disable steht in der Regel auf False. Stellt man ihn auf True, so wird der gesamte Container nicht mehr ausgeführt.
Man kann diese Eigenschaft aber auch gezielt nutzen, um den Programmablauf im Paket zu steuern.

Beispiel zur Steuerung

Wir definieren vorab eine Variable mit Namen Anzahl und dem Datentyp Int32 und dem Wert 0.
Dann definieren wir einen SQL-Task, der eine Anzahl ermittelt. Wenn diese Anzahl > 0 ist, soll der Sequenzcontainer ausgeführt werden.

Hierbei ist zu beachten, dass ResultSet auf Einzelne Zeile gestellt ist. Im linken Teil des Fensters wählt man dann Resultset aus und definiert den Zusammenhang von der Variablen und dem Ergebnis des SQLs.

Nun definieren wir einen Sequenzcontainer, der gewisse Aktionen beinhaltet und verbinden den SQL-Task mit dem Sequenzcontainer. In diesem Zustand wird der Sequenzcontainer immer ausgeführt und kann über die Eigenschaft oder das Kontextmenü "Deaktivieren" abgeschaltet werden.

Will man dies aber nun dynamisch machen, so öffnet man die Eigenschaften des Sequenzcontainers und wählt dort im unteren Bereich die Expressions aus. Über den Button mit den drei Punkten kommt man in eine GUI, wo zuerst eine Auswahl der Eigenschaft erfolgt, die man ändern möchte.

In diesem Falle wollen wir die Eigenschaft Disable setzen. Der Button mit den drei Punkten bringt uns zur Definition des Ausdrucks. Wenn die Variable Anzahl den Wert 0 hat, soll der Container deaktiviert werden. Wir definieren also eine Bedingung, die uns den Wert True liefert, wenn die Variable 0 ist. Die einzelnen Elemente aus dem oberen Bereich des Fensters kann man per Drag & Drop in den untereren Bereich ziehen. Der Button Ausdruck auswerten ermöglicht es uns die Aktion zu überprüfen. Wenn die Variable keinen Initialwert hat, kann diese Überprüfung natürlich nicht stattfinden.

Startet man nun das Paket, so hängt es vom Ergebnis des SQL-Task ab, ob der Sequenzcontainer durchlaufen wird, oder nicht.