TextFile Adapter - Verarbeitung von CSV, TXT, ... Dateien
Der TextFile Adapter wird zum importieren / exportieren sowie verarbeiten von Textdateien verwendet. Der Adapter kann sowohl auf der READ als auch auf der WRITE Seite vorkommen. Egal ob sie CSV, TXT, ASC, ASCII, Flatfiles oder andere Textfiles erzeugen, einlesen bzw. in ein anderes Format umwandeln bzw. transformieren wollen, der TextFile Adapter kann damit umgehen. Auch die Verarbeitung von großen Textdateien stellt kein Problem dar. Bitte beachten Sie auch die allgemeinen Infos zu Adaptern.
Das CSV (Comma Separated Value) Format ist hier wohl der Klassiker. Der FlowHeater bzw. der TextFile Adapter unterstützt aber nicht nur CSV Dateien sondern fast jedes beliebiges Textformat. Zusätzlich dazu werden die unterschiedlichsten Codepages unterstützt. Standard beim erstellen ist die auf Ihrem System gerade aktive Einstellung. Die Codepage wird in der Definition mit abgespeichert. Somit können Definitionen, die z.B. auf einer deutschen Workstation erstellt wurden, über das FHBatch Modul auf einem Windows Server, der auf Englisch konfiguriert ist, ohne Probleme laufen. DOS (ASCII), Unicode (utf7, utf8, utf16, utf32) wie auch EBCDIC (IBM Großrechner) werden dabei ebenso unterstützt. Die Codepage wird einfach über das Kombinationsfeld "Codepage" ausgewählt. Auf der READ Seite wird bei Auswahl einer UTF/Unicode Datei mit BOM (byte order mark) die richtige Codepage automatisch erkannt.
Reiter Allgemein
Dateiname:
Es werden hier keine Wildcards wie *.csv unterstützt. Wenn Sie mehrere Textdateien eines Verzeichnisses verarbeiten möchten benötigen Sie dazu das Batch Modul mit der Option /ReadFileName *.csv.
Auf der READ Seite können auch http:// und https:// Dateiangaben verwendet werden. Die Datei muss dazu öffentlich verfügbar sein, es wird derzeit keine WebServer Benutzeranmeldung unterstützt.
Erste Zeile enthält Feldnamen: Damit steuern Sie ob in der Datei die erste Zeile als Feldnamen zu interpretieren sind. Auf der READ Seite werden automatisch die Feldnamen aus der Textdatei in die Definition übernommen. Auf der WRITE Seite bestimmen Sie hiermit, dass die Feldnamen aus der Definition in die Datei geschrieben werden sollen. Feldname = Name des Feldes aus der Definition.
Spalten dynamisch anhand Feldnamen zuordnen: Hiermit teilen Sie dem TextFile Adapter mit, dass die CSV Spalten anhand der in der Textdatei vorhandenen Anordnung dynamisch dem richtigen Feld zuordnen soll.
Codepage: Auswahl der zu verwendenden Codepage.
z.B.
850 = MS DOS ASCII westeuropäisch
1252 = Windows Ansi westeuropäisch (Standard)
65001 = Unicode UTF-8
...
Hinweis: READ und WRITE können unterschiedliche Codepages aufweisen.
Abgrenzung: Hiermit geben Sie an wie in ihrer Textdatei bzw. im Flatfile die einzelnen Werte voneinander getrennt sind. Mögliche Werte sind Trennzeichen oder Feste Breite. Wird hier Trennzeichen angegeben, kann auf dem Reiter Trennzeichen das Trennzeichen ausgewählt werden. Schalten Sie zwischen den beiden Optionen hin und her, wird z.B. bei "Feste Breite" eine Default Feldlänge von 10 vorgegeben. Mit dem Button "Feldlängen zurücksetzen" können Sie diese wieder auf 0 zurücksetzen lassen.
Zeilenumbruch: Hier können Sie zwischen „DOS / Windows“, „UNIX / Linux“ oder aber „Benutzerdefinierte Zeichen“ auswählen. Dabei bedeuten:
- DOS / Windows: Als Zeilenumbruch werden in der Textdatei zwei Bytes „CR LF (0x0D0A)“ erkannt bzw. geschrieben.
- UNIX / Linux: Als Zeilenumbruch wird in der Textdatei ein Byte „LF (0x0A)“ erkannt bzw. geschrieben.
- Benutzerdefinierte Zeichen: Hier haben Sie die Möglichkeit frei definierte Zeichen (auch Kombinationen) im nebenstehenden Textfeld als Zeilenumbruch zu verwenden. Der TextFile Adapter interpretiert bzw. schreibt dann diese Zeichen als Zeilenumbruch.
Mit der Option "Zusätzlichen Zeilenumbruch ans Ende der Datei anfügen" weisen Sie den TextFile Adapter an die letzte geschriebene Zeile ebenfalls mit einem Zeilenumbruch abzuschließen.
Ist die Option "Leerzeilen überlesen" aktiv werden in der Textdatei vorhandene Leerzeilen übersprungen. Das definierte CSV Trennzeichen sowie Leerzeichen bzw. Tabulatoren im Feldinhalt einer Spalte werden nicht berücksichtigt. Das bedeutet, dass eine Zeile die nur aus CSV Trennzeichen besteht ebenfalls gefiltert wird.
Reiter Trennzeichen
Trennzeichen: Hier können Sie bei CSV Dateien angeben mit welchen Trennzeichen in der Textdatei die Felder voneinander getrennt sind bzw. getrennt werden sollen. Standard Trennzeichen ist der Strichpunkt. Trifft keines der hier aufgeführten Zeichen zu können Sie alternativ den Punkt Anderes auswählen und im Textfeld ihr gewünschtes Trennzeichen manuell eingeben.
Text Begrenzung: Bei CSV Dateien oder auch Flatfiles, getrennt mit Festen Längen, kann es vorkommen, dass Spalten die Text enthalten mit einem Textbegrenzer angegeben sind. Standard ist ohne Begrenzer.
1;"Dies ist der Text";100,51 €;...
Hier können Sie aus vordefinierten Werten auswählen oder ihre eigenen Benutzerdefinierte Werte angeben. Wichtig: Wenn Sie als Abgrenzung Feste Längen ausgewählt haben, zählt der Textbegrenzer mit zu der gewählten Feldlänge. In einem Feld das auf 20 Zeichen formatiert ist können dann nur noch 18 Zeichen Text formatiert werden!
Nur auf Datentyp String anwenden: Hiermit weisen Sie den FlowHeater an die angegebene Textbegrenzung nur für den FlowHeater Datentyp String anzuwenden!
Auch auf Spaltenüberschriften anwenden: Wenn Sie diese Option aktivieren werden die Einstellungen für die Textbegrenzungszeichen auch auf Spaltenüberschriften angewendet.
Leere Felder ignorieren: Ist diese Option aktiv, werden bei Feldern mit leeren Inhalt keine Textbegrenzer in die Textdatei geschrieben. Hinweis: Der Feldbegrenzer wird für dieses Feld trotzdem in die Datei geschrieben.
Prüfen ob das Spaltentrennzeichen innerhalb der Textbegrenzung vorkommt: Ist diese Option aktiv (=Standard) wird geprüft ob das CSV Spaltentrennzeichen innerhalb der Textbegrenzung vorkommt. Spaltentrennzeichen innerhalb der Textbegrenzungszeichen werden dann überlesen.
Automatisch im Feldinhalt doppelt vorkommende Textbegrenzungszeichen durch eines ersetzen: Kann das Texttrennzeichen als normales Zeichen ebenfalls im CSV Feldinhalt vorkommen werden diese normalerweise maskiert indem das CSV Textbegrenzungszeichen einfach gedoppelt wird. Ist diese Option aktiv ersetzt der TextFile Adapter beim einlesen diese maskierten/gedoppelten CSV Textbegrenzungszeichen mit einem - zwei aufeinanderfolgende CSV Textbegrenzungszeichen werden automatisch mit einem ersetzt.
Wird diese Option auf der WRITE Seite verwendet, werden im CSV Feldinhalt vorkommende Textbegrenzungszeichen automatisch maskiert bzw. verdoppelt/gequotet - Aus einem CSV Textbegrenzungszeichen werden automatisch zwei!
Reiter Felder / Datentypen
Auf diesem Reiter können Sie dem Adapter weitere Felder / Spalten hinzufügen bzw. vorhandene Felder ändern oder löschen. Mit dem Button "neu einlesen", werden die Spaltennamen aus der angegebenen Textdatei neu eingelesen. Diese Option ist nur auf der READ Seite aktiv.
Die Reihenfolge können Sie ganz einfach mit den Buttons Up/Down ändern. Klicken Sie dazu einfach in die Feldliste und betätigen den gewünschten Button.
Feldnamen können über das Textfeld Feldname geändert werden. Wenn in der Feldliste ein Feld markiert ist, müssen Sie dazu nur den dazugehörigen Eintrag ändern.
Format: Hier können Sie die Feldlänge eines Feldes sowie die Ausrichtung (Linksbündig bzw. Rechtsbündig) definieren. Feldlängen können Sie entweder über das Feld Länge direkt eingeben oder mit gedrückter linker Maustaste mittels der kleinen Dreiecke (siehe rote Markierung) einfach grafisch ziehen. Über das Feld Auffüllen können Sie definieren mit welchen Zeichen der restliche Platz im Feld (Linksbündig oder Rechtsündig) aufgefüllte werden soll. Standard = Leerzeichen! Hinweis: Das Auffüllen funktioniert nur, wenn für das Feld eine Feldlänge angegeben wurde und der Feldinhalt kleiner der Feldlänge ist!
Reiter Kopf- / Fußzeilen
Über diesen Reiter steuern Sie die Verarbeitung von zusätzlichen vorhandenen/auszugebenden CSV Kopf- bzw. Fußzeilen. Die Verarbeitung von Kopf/Fußzeilen läuft nicht über die definierten Spalten sondern über die Gesamte Zeile. Jede Zeile wird dabei über einen separaten Parameter abgebildet.
Auf der READ Seite: Wird die komplette Zeile in dem angegebenen Parameter zur weiteren Verarbeitung zur Verfügung gestellt. Auf Werte daraus kann während der Verarbeitung über den Get Parameter Heater zugegriffen werden. Hinweis: Der Inhalt von Fußzeilen wird bereits vor der eigentlich Verarbeitung gelesen und steht bereits beim ersten Datensatz, der verarbeitet wird, zur Verfügung.
Auf der WRITE Seite: Wird der Inhalt das angegebenen Parameters an die definierte Zeile geschrieben. Inhalte von Parametern können während der Verarbeitung über den Set Parameter Heater gesetzt bzw. verändert werden.
Mit der Option "Kopfzeilen erst am Ende der Verarbeitung schreiben" können Sie angeben dass der Inhalt der definierten Parameter der Kopfzeilen erst nach der kompletten Verarbeitung in die CSV Textdatei geschrieben werden. So können in Kopfzeilen z.B. Berechnungen während der Verarbeitung gebildet werden die anschließend in die Kopfzeilen der CSV Datei geschrieben werden.
Reiter Erweitert
Leerzeichen automatisch am Anfang und Ende des Inhaltes entfernen: Wenn Sie diese Option aktivieren werden pro Feld/Spalte automatisch evtl. vorhanden Leerzeichen am Anfang und Ende des Feldinhaltes entfernt.
Zeilenumbruch in Spalten erlauben (nur Lesen): Mit dieser Option geben Sie an ob Zeilenumbrüche innerhalb von Feldinhalten vorhanden sein können. Hiermit können z.B. CSV Dateien gelesen werden in denen Zeilenumbrüche vorhanden sind ohne dass es hierbei zu Spalten- bzw. Feldverschiebungen kommt. Diese Option ist nur auf der READ Seite verwendbar.
Zeilenumbrüche in Feldinhalten automatisch ersetzen mit: Hiermit legen Sie fest ob evtl. im Feldinhalt vorhanden Zeilenumbrüche automatisch mit den hier angegebenen Zeichen ersetzte werden sollen. Sinnvoll wenn z.B. Daten aus SQL Datenbanken exportiert werden sollen in denen Zeilenumbrüche vorhanden sind. Es werden alle im Feldinhalt vorhandene Zeilenumbrüche ersetzt
Maximale Länge einer separaten Zeile: Hiermit teilen Sie dem TextFile Adapter aus wie vielen Zeichen eine einzelne Zeile max. besteht.
Leere Kopf-/Fußzeilen beim Schreiben unterdrücken: Über diese Option steuern Sie ob während des Schreibvorgangs definierte aber nicht befüllte Kopf- bzw. Fußzeilen unterdrückt werden sollen.
Der Reiter Format
Der Reiter Format wird im allgemeinen Adapter Kapitel beschrieben.
Folgende Beispiele sind für den TextFile Adapter bereits verfügbar
- HelloWord1, HelloWorld2 und HelloWorld3 - Hier wird der Allgemeine Umgang mit dem FlowHeater erklärt.
- Konvertieren eines CSV Textfiles in eine Textdatei getrennt mit festen längen
- Umwandeln eines Text FlatFiles in eine MS-DOS ASCII CSV Textdatei
- Verarbeiten von CSV Kopf- und Fußzeilen
- CSV Textdatei in eine MS Access Datenbank Tabelle importieren
- Import einer CSV Datei in eine MS SQL Server Datenbank Tabelle
- Export eines FlatFiles aus einer MS SQL Server Datenbank Tabelle (Felder getrennt mit festen Längen/Breiten)
- Lesen von teilweise unstrukturierten FlatFile Textdateien, zusätzlich wird hier erklärt wie Werte über mehrere Zeilen gruppiert und summiert werden können.