Kontakt  Impressum 
 
       Navigationslinks überspringen.   

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.
  1. Legen Sie ein neues Integration Services-Paket mit dem Namen "Excel-Interessenten" an.
  2. Ziehen Sie eine Datenflusstask in die Ablaufsteuerung und wechseln Sie in die Datenflusstask.
  3. Ziehen Sie eine Excel-Quelle in die Datenflusstask.
  4. Erstellen Sie im Quellen-Editor einen neuen Verbindungs-Manager für die Excel-Datei "Interessenten.xls" und wählen Sie die "Tabelle1$" aus.
  5. Im Vorschaufenster können Sie sich die Daten der Excel-Tabelle anschauen:

    Abbildung 1: Daten der Excel-Tabelle im Vorschaufenster

  6. 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"

  7. Geben Sie die in Abbildung 14.11 zu sehenden Bedingungen ein.
  8. Mit der ersten Bedingungen fürs bedingte Teilen werden alle Zeilen des Datenflusses deren Interessentennummer Null ist, in der Ausgabepipeline Null ausgegeben.
  9. 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.
  10. 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.
  11. Um die Ausgabe zu visualisieren, legen Sie zu jeder Ausgabe-Pipeline einem Datenviewer an.
  12. Ihre Datenflusstask sollte nun ungefähr so aussehen:

    Abbildung 3: Ansicht der Datenflusstask

  13. 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.