Beispiel: Exceltabelle mit Nullwerten - Ausdrucksprogrammierung Komponente Bedingtes Teilen
Szenario: Die Marketingabteilung hat eine Excel-Tabelle mit Interessentennummern erstellt.
Alle aufgeführten Interessenten sollen zu einer Messe eingeladen werden. Die Daten in der Excel-Tabelle
sind allerdings nicht fehlerfrei. Es wurden Leerzeilen und Kommentare hinzugefügt und einige Nummern sind
nur 6-stellig eingegeben.
Sie haben nun die Aufgabe, die Excel-Tabelle einzulesen und die korrekten Eingaben weiterzuverarbeiten.
Die fehlerhaften Zeilen sollen ermittelt und angezeigt werden. Zeilen ohne Interessentennummer sollen aussortiert werden.
Die Trennung im Datenfluss wird von einer Komponente "Bedingtes Teilen" übernommen. Die Bedingungen fürs
Teilen werden über die Ausdrucksprogrammierung festgelegt.
Die Weiterverarbeitung der Daten ist nicht Gegenstand dieses Beispiels.
- Legen Sie ein neues Integration Services-Paket mit dem Namen "Excel-Interessenten" an.
- Ziehen Sie eine Datenflusstask in die Ablaufsteuerung und wechseln Sie in die Datenflusstask.
- Ziehen Sie eine Excel-Quelle in die Datenflusstask.
- Erstellen Sie im Quellen-Editor einen neuen Verbindungs-Manager für die Excel-Datei "Interessenten.xls" und wählen Sie die "Tabelle1$" aus.
- Im Vorschaufenster können Sie sich die Daten der Excel-Tabelle anschauen:

Abbildung 1: Daten der Excel-Tabelle im Vorschaufenster
- Ziehen Sie eine Komponente Bedingtes Teilen in die Datenflusstask, verbinden Sie den grünen Output-Pfeil der Excel-Quelle mit dieser Komponente und öffnen Sie mit einem Doppelklick den Transformations-Editor für bedingtes Teilen.

Abbildung 2: Beispielbedingungen "Null" und "Laenge"
- Geben Sie die in Abbildung 14.11 zu sehenden Bedingungen ein.
- Mit der ersten Bedingungen fürs bedingte Teilen werden alle Zeilen des Datenflusses deren Interessentennummer
Null ist, in der Ausgabepipeline Null ausgegeben.
- In der zweiten Bedingung wird die Länge der Interessentennummer überprüft. Alle Zeilen des Datenflusses,
bei denen die Länge der Interessentennummern ungleich Sieben ist, werden in der Ausgangspipeline Laenge ausgegeben.
Bitte beachten Sie, dass die Spalte Interessenten ein numerischer Datentyp DT_ R8 ist und die LEN-Funktion einen
String-Datentyp erwartet. Der Datentyp DT_R8 wird für die Prüfung mit Operand (DT_STR,10,1252) konvertiert.
Eine Alternative wäre die numerische Prüfung: "Interessenten < 1000000 || Interessenten > 9999999".
Das logische "or" wird durch den Operator "||" dargestellt.
- Ziehen Sie drei Komponenten Multicast "Papierkorb" (näheres hierzu in ?Kapitel 16 im Abschnitt "Komponente
Multicast als leeres Datenziel") in die Datenflusstask und verbinden Sie jeweils den grünen Pfeil der Komponente
Bedingtes Teilen mit jeder der Multicast-Komponenten. Beim Aufbau der Verbindung müssen Sie die Ausgabe-Pipeline
auswählen.
- Um die Ausgabe zu visualisieren, legen Sie zu jeder Ausgabe-Pipeline einem Datenviewer an.
- Ihre Datenflusstask sollte nun ungefähr so aussehen:

Abbildung 3: Ansicht der Datenflusstask
- Starten Sie das Paket. Es werden hintereinander die drei Datenviewer geöffnet. Nach Einsicht der Viewerdaten setzen Sie den Paketdurchlauf fort. Die Excel-Daten werden wie gewünscht auf drei Datenflüsse aufgeteilt.