- Beiträge: 64
mehrere Dateien im 1. Step einlesen
- Philip Herbert
- Autor
- Offline
- Benutzer
-
Weniger
Mehr
2 Wochen 5 Tage her #5471
von Philip Herbert
mehrere Dateien im 1. Step einlesen wurde erstellt von Philip Herbert
Hallo Herr Stark,
gibt es ein Beispiel, wie man den Server (Zeitauftrag) konfiguriert, damit mehrere Dateien im ersten Step einer Definition in eingelesen werden können ?
z.B. Kto_*.csv
Danke, Philip Herbert
gibt es ein Beispiel, wie man den Server (Zeitauftrag) konfiguriert, damit mehrere Dateien im ersten Step einer Definition in eingelesen werden können ?
z.B. Kto_*.csv
Danke, Philip Herbert
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Philip Herbert
- Autor
- Offline
- Benutzer
-
Weniger
Mehr
- Beiträge: 64
2 Wochen 5 Tage her #5472
von Philip Herbert
Philip Herbert antwortete auf mehrere Dateien im 1. Step einlesen
ich bin einen Schritt weitergekommen:
/ReadFileName Konto_*.csv liest offenbar genau eine Datei ein, allerdings nur dann, wenn der optionale Start Pfad angegeben ist.
Der Flowheater Default (wo die Definition liegt) scheint hier nicht zu funktionieren.
Aber warum wird nur 1 Datei eingelesen, wenn dort mehrere liegen ?
Rows Read zeigt jedenfalls die Anzahl Zeilen von einer der insgesamt 5 Dateien an, die mit 'dir Konto_*.csv' auch gefunden werden.
Die Dateien haben leider jeweils eine (identische) Kopfzeile, so dass vorher irgendwie zusammenkopieren auch keine sinnvolle Option ist.
Wäre es möglich die Namen der eingelesenen Dateien auszugeben ?
Danke, Philip Herbert
/ReadFileName Konto_*.csv liest offenbar genau eine Datei ein, allerdings nur dann, wenn der optionale Start Pfad angegeben ist.
Der Flowheater Default (wo die Definition liegt) scheint hier nicht zu funktionieren.
Aber warum wird nur 1 Datei eingelesen, wenn dort mehrere liegen ?
Rows Read zeigt jedenfalls die Anzahl Zeilen von einer der insgesamt 5 Dateien an, die mit 'dir Konto_*.csv' auch gefunden werden.
Die Dateien haben leider jeweils eine (identische) Kopfzeile, so dass vorher irgendwie zusammenkopieren auch keine sinnvolle Option ist.
Wäre es möglich die Namen der eingelesenen Dateien auszugeben ?
Danke, Philip Herbert
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Philip Herbert
- Autor
- Offline
- Benutzer
-
Weniger
Mehr
- Beiträge: 64
2 Wochen 5 Tage her #5473
von Philip Herbert
Philip Herbert antwortete auf mehrere Dateien im 1. Step einlesen
Korrektur:
offenbar wir die Definition für jede Datei neu ausgeführt, anstatt im 1. Schritt alle Dateien zusammen auszulesen und z.B. inMemory zur gemeinsamen weiteren Verarbeitung verfügbar zu haben
Gibt es da eine andere Lösung, oder braucht man dann einen eigenen Step der erst einmal alles in einer Datei zusammenführt um dann später im nächsten Step
eben wieder diese Datei zu lesen ?
Danke, Philip Herbert
offenbar wir die Definition für jede Datei neu ausgeführt, anstatt im 1. Schritt alle Dateien zusammen auszulesen und z.B. inMemory zur gemeinsamen weiteren Verarbeitung verfügbar zu haben
Gibt es da eine andere Lösung, oder braucht man dann einen eigenen Step der erst einmal alles in einer Datei zusammenführt um dann später im nächsten Step
eben wieder diese Datei zu lesen ?
Danke, Philip Herbert
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
-
- Offline
- Administrator
-
Weniger
Mehr
- Beiträge: 2128
2 Wochen 5 Tage her #5474
von FlowHeater-Team
gruß
Robert Stark
FlowHeater-Team antwortete auf mehrere Dateien im 1. Step einlesen
Hallo Herr Herbert,
wenn Sie im FlowHeater Server eine FHD zur Ausführung angeben, wird im Hintergrund die FHBatch.exe gestartet. Die Argumente, die Sie hier mitgeben können, sind genau die, die auch für eine manuelle Ausführung vom Batch Modul verwendet werden. Die Angabe von /ReadFileName erfordert immer eine relative oder absolute Pfadangabe ausgehend vom aktuellen Pfad, da Sie sich hier noch auf der Kommandozeilenebene befinden. Alle anderen Pfadangaben, die in der Definition gemacht werden, beziehen sich auf den Speicherort der Definitionsdatei (.fhd).
Das Batch Modul führt dann die angegebene Definition komplett für jede gefundene Datei (*.csv) aus. Nach jeder Datei findet auch ein „RESET“ statt, so dass jede Datei genau mit den gleichen Grundparametern verarbeitet wird.
Das Batch Modul gibt bei Aufruf über Wildcards jeden Dateinamen auf der Konsole aus. Das sollten Sie in der Ausgabe zu den Ausführung im FlowHeater Server in der Ausführungshistorie sehen. Evtl. die Option „Konsolenausgabe speichern“ aktivieren, sollte aber per Default eingeschaltet sein. Alternativ dazu können Sie über den System Heater auf den aktuellen Dateinamen zugreifen und mittels des Message Heater nochmal ausgeben lassen. Ich würde Ihnen empfehlen den Dateinamen als weitere CSV-Spalte in die „GROSSE“ CSV-Datei mit ausgeben zu lassen. So können Sie nachvollziehen, woher die Daten stammen. Siehe Beispiel im Anhang.
Wenn Sie nun alle Dateien als eine „GROSSE“ CSV-Datei verarbeiten möchten bietet sich folgendes an:
Sie erstellen eine Definition die per /ReadFileName alle Dateien verarbeitet und an eine temporärere Datei anfügt. Hier verwenden Sie auf der WRITE Seite im TextFile Adapter im Dateinamen „%TEMP%\work.csv“. Da der FlowHeater Server das TEMP-Verzeichnis umbiegt und jede Ausführung ein eigenes Verzeichnis dafür hat, müssen Sie sich auch nicht darum kümmern, diese Datei vorher oder nachher wieder zu löschen, das erledigt der FlowHeater Server .
Dann erstellen Sie eine zweite Definition, wo Sie Ihre eigentliche Verarbeitung durchführen. Im ersten Verarbeitungsschritt müssen Sie im TextFile Adapter auf der READ-Seite lediglich auf die eben erzeugte temporäre CSV-Datei verweisen „%TEMP%\work.csv“. In dieser Definition können Sie jetzt weitere beliebige Verarbeitungsschritte einfügen.
Diese beiden Definitionen lassen Sie im FlowHeater Server nacheinander in einer Aufgabe/Task ablaufen und Sie haben das gewünschte Ergebnis.
wenn Sie im FlowHeater Server eine FHD zur Ausführung angeben, wird im Hintergrund die FHBatch.exe gestartet. Die Argumente, die Sie hier mitgeben können, sind genau die, die auch für eine manuelle Ausführung vom Batch Modul verwendet werden. Die Angabe von /ReadFileName erfordert immer eine relative oder absolute Pfadangabe ausgehend vom aktuellen Pfad, da Sie sich hier noch auf der Kommandozeilenebene befinden. Alle anderen Pfadangaben, die in der Definition gemacht werden, beziehen sich auf den Speicherort der Definitionsdatei (.fhd).
Das Batch Modul führt dann die angegebene Definition komplett für jede gefundene Datei (*.csv) aus. Nach jeder Datei findet auch ein „RESET“ statt, so dass jede Datei genau mit den gleichen Grundparametern verarbeitet wird.
Das Batch Modul gibt bei Aufruf über Wildcards jeden Dateinamen auf der Konsole aus. Das sollten Sie in der Ausgabe zu den Ausführung im FlowHeater Server in der Ausführungshistorie sehen. Evtl. die Option „Konsolenausgabe speichern“ aktivieren, sollte aber per Default eingeschaltet sein. Alternativ dazu können Sie über den System Heater auf den aktuellen Dateinamen zugreifen und mittels des Message Heater nochmal ausgeben lassen. Ich würde Ihnen empfehlen den Dateinamen als weitere CSV-Spalte in die „GROSSE“ CSV-Datei mit ausgeben zu lassen. So können Sie nachvollziehen, woher die Daten stammen. Siehe Beispiel im Anhang.
Wenn Sie nun alle Dateien als eine „GROSSE“ CSV-Datei verarbeiten möchten bietet sich folgendes an:
Sie erstellen eine Definition die per /ReadFileName alle Dateien verarbeitet und an eine temporärere Datei anfügt. Hier verwenden Sie auf der WRITE Seite im TextFile Adapter im Dateinamen „%TEMP%\work.csv“. Da der FlowHeater Server das TEMP-Verzeichnis umbiegt und jede Ausführung ein eigenes Verzeichnis dafür hat, müssen Sie sich auch nicht darum kümmern, diese Datei vorher oder nachher wieder zu löschen, das erledigt der FlowHeater Server .
Dann erstellen Sie eine zweite Definition, wo Sie Ihre eigentliche Verarbeitung durchführen. Im ersten Verarbeitungsschritt müssen Sie im TextFile Adapter auf der READ-Seite lediglich auf die eben erzeugte temporäre CSV-Datei verweisen „%TEMP%\work.csv“. In dieser Definition können Sie jetzt weitere beliebige Verarbeitungsschritte einfügen.
Diese beiden Definitionen lassen Sie im FlowHeater Server nacheinander in einer Aufgabe/Task ablaufen und Sie haben das gewünschte Ergebnis.
gruß
Robert Stark
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.821 Sekunden