- Beiträge: 37
Anzahl der bearbeiteten Zeilen per batch einschränken
- Christoph
- Autor
- Offline
- Benutzer
Weniger
Mehr
11 Jahre 8 Monate her #1247
von Christoph
Anzahl der bearbeiteten Zeilen per batch einschränken wurde erstellt von Christoph
Hallo zusammen,
ich habe eine Datei mit ca. 300.000 Zeilen. Diese Datei muss für die Weiterverarbeitung aufbereitet werden. Flowheater kann das ohne Probleme. Mein Problem ist aber, dass im nächsten Schritt (mit einem anderen Programm) nur eine bestimmte Anzahl, z. B. x = 10.0000 Datensätze verarbeitet werden können.
Deshalb suche ich nach einer Lösung, bei der z. B. durch ein Batch script von der 300.000 Zeilen Datei nur die ersten x Zeile bearbeitet werden. Beim zweiten Aufruf der Batchdatei werden dann die nächsten x Zeilen bearbeitet... So lange, bis die 300.000 Datensätze durch sind.
Kann man das irgendwie realisieren?
Vielen Dank für Eure Hilfe.
MFG
ich habe eine Datei mit ca. 300.000 Zeilen. Diese Datei muss für die Weiterverarbeitung aufbereitet werden. Flowheater kann das ohne Probleme. Mein Problem ist aber, dass im nächsten Schritt (mit einem anderen Programm) nur eine bestimmte Anzahl, z. B. x = 10.0000 Datensätze verarbeitet werden können.
Deshalb suche ich nach einer Lösung, bei der z. B. durch ein Batch script von der 300.000 Zeilen Datei nur die ersten x Zeile bearbeitet werden. Beim zweiten Aufruf der Batchdatei werden dann die nächsten x Zeilen bearbeitet... So lange, bis die 300.000 Datensätze durch sind.
Kann man das irgendwie realisieren?
Vielen Dank für Eure Hilfe.
MFG
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
11 Jahre 8 Monate her #1248
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Aw: Anzahl der bearbeiteten Zeilen per batch einschränken
Hallo Christoph,
über mehrere Aufrufe des Batch Moduls nacheinander ist das leider nicht möglich. Was aber Problemlos möglich ist während des Batch Exportes gleich mehrere CSV Dateien zu erzeugen bzw. die Datensätze in einzelnen CSV Dateien zu splitten.
Sie benötigen dazu einen Parameter $FILE$ sowie ein kleines Skript für den .NET Script Heater das den Parameter anhand der aktuelle verarbeiteten Zeile setzt, so dass ab x verarbeiteten Zeilen eine neue CSV Datei generiert wird.
Ich habe Ihnen dazu ein kleines Beispiel erstellt. Hier werden 10 CSV Textdateien generiert output_1.csv bis output_10.csv. Pro CSV Textdatei werden 1.000 Zeilen geschrieben.
Den Parameter $FILE$ müssen Sie dabei als Dateiname im Textfile Adapter verwenden. Ich denke wenn Sie sich das Beispiel ansehen sollten Sie zurechtkommen. Im Skript müssen Sie den Export Dateinamen anpassen sowie die Anzahl an Datensätzen die Sie maximal pro Datei exportieren möchten. Die Stellen sind mit Kommentaren versehen wo sie Änderungen eintragen können.
Hier das Skript)
über mehrere Aufrufe des Batch Moduls nacheinander ist das leider nicht möglich. Was aber Problemlos möglich ist während des Batch Exportes gleich mehrere CSV Dateien zu erzeugen bzw. die Datensätze in einzelnen CSV Dateien zu splitten.
Sie benötigen dazu einen Parameter $FILE$ sowie ein kleines Skript für den .NET Script Heater das den Parameter anhand der aktuelle verarbeiteten Zeile setzt, so dass ab x verarbeiteten Zeilen eine neue CSV Datei generiert wird.
Ich habe Ihnen dazu ein kleines Beispiel erstellt. Hier werden 10 CSV Textdateien generiert output_1.csv bis output_10.csv. Pro CSV Textdatei werden 1.000 Zeilen geschrieben.
Den Parameter $FILE$ müssen Sie dabei als Dateiname im Textfile Adapter verwenden. Ich denke wenn Sie sich das Beispiel ansehen sollten Sie zurechtkommen. Im Skript müssen Sie den Export Dateinamen anpassen sowie die Anzahl an Datensätzen die Sie maximal pro Datei exportieren möchten. Die Stellen sind mit Kommentaren versehen wo sie Änderungen eintragen können.
Hier das Skript)
Code:
int aktfile = 0;
public object DoWork()
{
// Dateiname hier ggf. anpassen. {0} muss vorhanden bleiben!
// es gehen auch absolute Pfadangaben
string filename = "output_{0}.csv";
// Anzahl zeilen anpassen bei der eine neue Datei erzeugt werden soll
int MaxRows = 1000;
int aktrow = (int)InValues[0].GetInt() - 1;
// ab hier nichts mehr ändern
if ((aktrow + MaxRows) % MaxRows == 0)
aktfile++;
// generierten Dateinamen für den SET Parameter Heater zurückgeben
return String.Format(filename, aktfile);
}
Anhang mehrere_dateien_exportieren.zip wurde nicht gefunden.
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Anhänge:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Christoph
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 37
11 Jahre 8 Monate her #1259
von Christoph
Christoph antwortete auf Aw: Anzahl der bearbeiteten Zeilen per batch einschränken
Vielen Dank Herr Stark.
Das ist wiedermal (wie so oft ) eine perfekte Lösung!
MFG
Das ist wiedermal (wie so oft ) eine perfekte Lösung!
MFG
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.276 Sekunden