Gruppierung in separate Textdatei schreiben
- FlowHeater-Team
- Autor
- Offline
- Administrator
Weniger
Mehr
13 Jahre 8 Monate her #305
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.
Gruppierung in separate Textdatei schreiben wurde erstellt von FlowHeater-Team
Anfrage per Email erhalten.
Hallo,
ich habe ein paar technische Frage im Bezug auf Ihren Flow Heater.
Ich habe einen Lagerscanner der die Datei Projekte.txt erzeugt.
KDI-11-0027;100392;20
KDI-11-0027;100395;90
KDI-11-0027;100395;60
AUF-11-1007;100395;90
AUF-11-1007;100395;60
@EOF;
Jetzt muss diese Datei gruppiert werden nach den jeweiligen Auftragsnummern. Bedeutet alles was z.B. KDI-11-0027 ist soll in Datei 1 und alles was AUF-11-1007 ist soll in Datei 2.
Zudem sollte die letzte Zeile (Zeilenanzahl ist immer Variabel) sozusagen Ignoriert werden und am besten wenn alles bearbeitet wurde soll die Ursprungsdatei gelöscht werden.
Als guter Letzt sollte noch der Dateinamen die jeweils aus der gruppierten Datei enthaltenen Auftragsnummer generiert werden und der Zeitstempel dazu in den Dateinamen gesetzt werden.
Beispiel Dateiname:
AUF-10-0135 17.11.2010 07-53-47 MO.txt
Und zusätzlich in der als erstes Gruppierten Zwischendateien sollte dann nur noch Nummer und Menge stehen.
Ist echt kompliziert aber geht das mit dem FlowHeater???
Hallo,
ich habe ein paar technische Frage im Bezug auf Ihren Flow Heater.
Ich habe einen Lagerscanner der die Datei Projekte.txt erzeugt.
KDI-11-0027;100392;20
KDI-11-0027;100395;90
KDI-11-0027;100395;60
AUF-11-1007;100395;90
AUF-11-1007;100395;60
@EOF;
Jetzt muss diese Datei gruppiert werden nach den jeweiligen Auftragsnummern. Bedeutet alles was z.B. KDI-11-0027 ist soll in Datei 1 und alles was AUF-11-1007 ist soll in Datei 2.
Zudem sollte die letzte Zeile (Zeilenanzahl ist immer Variabel) sozusagen Ignoriert werden und am besten wenn alles bearbeitet wurde soll die Ursprungsdatei gelöscht werden.
Als guter Letzt sollte noch der Dateinamen die jeweils aus der gruppierten Datei enthaltenen Auftragsnummer generiert werden und der Zeitstempel dazu in den Dateinamen gesetzt werden.
Beispiel Dateiname:
AUF-10-0135 17.11.2010 07-53-47 MO.txt
Und zusätzlich in der als erstes Gruppierten Zwischendateien sollte dann nur noch Nummer und Menge stehen.
Ist echt kompliziert aber geht das mit dem FlowHeater???
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.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Autor
- Offline
- Administrator
13 Jahre 8 Monate her #306
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: Gruppierung in separate Textdatei schreiben
Um mehrere Textdateien während einer FlowHeater Ausführung zu generieren, muss der Dateiname über den .NET Script Heater geändert werden. Ich habe Ihnen dazu mal ein kleines Beispiel erstellt, Siehe Anlage. In der Definition sind noch 2 weitere Heater (Filter, IF-THEN-ELSE). Diese dienen dazu die Zeile mit dem @EOF zu filtern.
Wenn Sie das Beispiel über die "projekt.cmd" Command Skript Datei ausführen, wird für jede Gruppierung eine separate Ausgabedatei geschrieben. Über dieses CMD Skript können Sie dann anschließend noch die Eingangsdatei nach erfolgreicher Ausführung löschen. (siehe Kommentar im Skript).
Hinweis: Das Beispiel geht davon aus, dass die Auftragsnummern aufeinander folgen bzw. sortiert in der Textdatei vorliegen. Ist das nicht gewährleistet, müsste die Definition noch etwas modifiziert werden.
Achtung: Damit das Umsetzen des Dateinamens funktioniert, muss die Definition im Massendatenmodus ausgeführt werden!
Wenn Sie das Beispiel über die "projekt.cmd" Command Skript Datei ausführen, wird für jede Gruppierung eine separate Ausgabedatei geschrieben. Über dieses CMD Skript können Sie dann anschließend noch die Eingangsdatei nach erfolgreicher Ausführung löschen. (siehe Kommentar im Skript).
Hinweis: Das Beispiel geht davon aus, dass die Auftragsnummern aufeinander folgen bzw. sortiert in der Textdatei vorliegen. Ist das nicht gewährleistet, müsste die Definition noch etwas modifiziert werden.
Achtung: Damit das Umsetzen des Dateinamens funktioniert, muss die Definition im Massendatenmodus ausgeführt werden!
Anhang projekt.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.
- Carsten Schweickert
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 19
13 Jahre 8 Monate her #315
von Carsten Schweickert
Carsten Schweickert antwortete auf Aw: Gruppierung in separate Textdatei schreiben
Jetzt tritt folgender Fall nicht auf:
Hinweis: Das Beispiel geht davon aus, dass die Auftragsnummern aufeinander folgen bzw. sortiert in der Textdatei vorliegen. Ist das nicht gewährleistet, müsste die Definition noch etwas modifiziert werden.
Wie wird das Gelösst ???
Zudem noch eine zusätzliche Frage:
Welchen Dateizielort soll den angegeben werden wenn der Zielname "Felxibel" ist ??? Und zudem auch noch im Netzwerk ???
CS
Hinweis: Das Beispiel geht davon aus, dass die Auftragsnummern aufeinander folgen bzw. sortiert in der Textdatei vorliegen. Ist das nicht gewährleistet, müsste die Definition noch etwas modifiziert werden.
Wie wird das Gelösst ???
Zudem noch eine zusätzliche Frage:
Welchen Dateizielort soll den angegeben werden wenn der Zielname "Felxibel" ist ??? Und zudem auch noch im Netzwerk ???
CS
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Autor
- Offline
- Administrator
13 Jahre 8 Monate her #322
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: Gruppierung in separate Textdatei schreiben
Sortieren geht normalerweise über den
Sort Heater
. Der Sort Heater kommt allerdings nicht mit dem
Massendatenmodus
zurecht. Die andere Lösung, dass über die
TextFile Adapter
Option "An vorhanden Datei anfügen" zu erledigen, kommt aufgrund des gewählten Dateienamens (mit Uhrzeit) auch nicht in Frage. Hier würden Sie je nach Laufzeit sonst mehrere Dateien erzeugen!
Sie können das aber vorgelagert über eine weitere FlowHeater Definition sortieren lassen. Erstellen Sie eine Definition, die auf der READ sowie auf der WRITE Seite die gleichen Felder enthält. Verbinden Sie die Felder 1:1 miteinander. Ziehen Sie nun noch einen Filter Heater auf den Designer und verbinden das erste Feld der READ Seite mit dem Filter Heater.
Diese Definition lassen Sie im Command Skript einfach vor der eigentlichen Definition ablaufen.
Den Speicherort können Sie im .NET Skript Heater leicht selbst anpassen. Ich habe das Skript leicht angepasst, ersetzen Sie hier C:\Temp\ einfach mit dem gewünschten Speicherort. Es werden Netzlaufwerke sowie UNC Pfade unterstützt.
Sie können das aber vorgelagert über eine weitere FlowHeater Definition sortieren lassen. Erstellen Sie eine Definition, die auf der READ sowie auf der WRITE Seite die gleichen Felder enthält. Verbinden Sie die Felder 1:1 miteinander. Ziehen Sie nun noch einen Filter Heater auf den Designer und verbinden das erste Feld der READ Seite mit dem Filter Heater.
Diese Definition lassen Sie im Command Skript einfach vor der eigentlichen Definition ablaufen.
Code:
@echo off
FHBatch.exe Sortierung.fhd
FHBatch.exe /massdata Import.fhd
Code:
string letzterAuftrag = String.Empty;
public object DoWork()
{
string auftrag = (string)InValues[0].GetString();
if (auftrag != "@EOF" && letzterAuftrag != auftrag)
{
// Zugriff auf den Textfile Adapter der WRITE Seite
TextFileAdapter adapter = (TextFileAdapter)AdapterWrite;
// neuen Dateinamen setzen Pfad ggf. ändern
string path = @"C:\Temp\";
adapter.Filename = path + auftrag + " " + DateTime.Now.ToString("dd.MM.yyyy HH-mm-ss dddd") + ".txt";
// letzte Auftragsnummer merken.
letzterAuftrag = auftrag;
}
// für die weitere Verarbeitung = Filter zurückliefern
return auftrag;
}
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.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Carsten Schweickert
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 19
13 Jahre 4 Monate her #539
von Carsten Schweickert
Carsten Schweickert antwortete auf Aw: Gruppierung in separate Textdatei schreiben
Hallo Herr Stark, alles Lief mal bestens aber leider hatte ich ein Serverproblem. Jetzt habe ich die gesicherte Datei vom Flow Heater wieder geladen aber das Zielverzeichniss motzt rum.
Woran liegt das ??? Habe die FHD und die Batch mit Angehängt, Batch läuft auch aber die Zieldateien laut FHD soll ja Flexibel sein und aus der Projekte.txt ja generiert werden. Können Sie mir Helfen, mache da jetzt schon seit drei Tagen dran rum
CS
Woran liegt das ??? Habe die FHD und die Batch mit Angehängt, Batch läuft auch aber die Zieldateien laut FHD soll ja Flexibel sein und aus der Projekte.txt ja generiert werden. Können Sie mir Helfen, mache da jetzt schon seit drei Tagen dran rum
CS
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Autor
- Offline
- Administrator
13 Jahre 4 Monate her #540
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: Gruppierung in separate Textdatei schreiben
Hallo Herr Schweickert,
um Anlagen hier einzufügen müssen Sie diese vorher in ein ZIP Archiv packen!
Können Sie bitte auch noch die Fehlermeldung posten, momentan kann ich mit Ihrer Meldung noch nicht viel anfangen :unsure:
um Anlagen hier einzufügen müssen Sie diese vorher in ein ZIP Archiv packen!
Können Sie bitte auch noch die Fehlermeldung posten, momentan kann ich mit Ihrer Meldung noch nicht viel anfangen :unsure:
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.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Carsten Schweickert
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 19
13 Jahre 4 Monate her #541
von Carsten Schweickert
Carsten Schweickert antwortete auf Aw: Gruppierung in separate Textdatei schreiben
Habe jetzt eine ZIP gemacht aber irgendwie kann ich Sie nicht hoch LAden, Schicke iHnen jetzt ne Mail mit der ZIP
CS
CS
Anhang Neuer_Ordner.zip wurde nicht gefunden.
Anhänge:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Autor
- Offline
- Administrator
13 Jahre 4 Monate her #542
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: Gruppierung in separate Textdatei schreiben
Hallo Herr Schweickert,
das Skript sieht gut aus und läuft hier. Hiermit wird pro Zeile aus der Importdatei eine neue Exportdatei im Verzeichnis der FlowHeater Definition erstellt.
Was aufgefallen ist, dass Ihre Pfadangaben nicht zusammenpassen. In der CMD/BAT Datei geben Sie S:\ als Laufwerk an in der Import/Export Definition steht aber C:\
Bitte prüfen Sie zuerst ob diese Definition über den Designer bei Ihnen läuft. Danach versuchen Sie mal diese Definition von Hand mit dem Batch Modul (FHBatch.exe) in der Konsole zu starten.
C:\> C:\Programm Files\FlowHeater V2\Bin\FHBatch.exe S:\Ihr_Pfad\Ihre_Import_Export_Defintion.fhd
Wenn das läuft passen Sie Ihre CMD/BAT Datei an. Fangen Sie aber mit einem Aufruf an, die restlichen Aufrufe am besten aus der CMD/BAT Datei löschen. Läuft das können Sie die einzelnen weiteren Aufrufe wieder einfügen.
das Skript sieht gut aus und läuft hier. Hiermit wird pro Zeile aus der Importdatei eine neue Exportdatei im Verzeichnis der FlowHeater Definition erstellt.
Was aufgefallen ist, dass Ihre Pfadangaben nicht zusammenpassen. In der CMD/BAT Datei geben Sie S:\ als Laufwerk an in der Import/Export Definition steht aber C:\
Bitte prüfen Sie zuerst ob diese Definition über den Designer bei Ihnen läuft. Danach versuchen Sie mal diese Definition von Hand mit dem Batch Modul (FHBatch.exe) in der Konsole zu starten.
C:\> C:\Programm Files\FlowHeater V2\Bin\FHBatch.exe S:\Ihr_Pfad\Ihre_Import_Export_Defintion.fhd
Wenn das läuft passen Sie Ihre CMD/BAT Datei an. Fangen Sie aber mit einem Aufruf an, die restlichen Aufrufe am besten aus der CMD/BAT Datei löschen. Läuft das können Sie die einzelnen weiteren Aufrufe wieder einfügen.
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.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Carsten Schweickert
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 19
13 Jahre 4 Monate her #547
von Carsten Schweickert
Carsten Schweickert antwortete auf Aw: Gruppierung in separate Textdatei schreiben
Habe das jetzt nochmals alle Getestet: Definition läuft einwandfrei solange eine Zieldatei da ist. Der Haken ist, das die Zeildatei von einem Printer gedruckt wird und dann verschoben wird, also eine Zielvorlage gibt es dann nicht mehr. Dies betrifft auch das Batch, wenn kein ziel mehr da ist ist kein Ziel mehr da.
Noch ein Tip ???
Ich weiß nicht was hier passiert ist aber das lief jezt seit Monaten
Noch ein Tip ???
Ich weiß nicht was hier passiert ist aber das lief jezt seit Monaten
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Autor
- Offline
- Administrator
13 Jahre 4 Monate her #550
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: Gruppierung in separate Textdatei schreiben
Was meinen Sie mit Zieldatei? Die Datei die der
Textfile Adapter
anlegen/exportieren soll?
Die Definition läuft hier selbst wenn ich auf der WRITE Seite den Dateiname (Filename) entferne. Der Name wird nach jeder geschriebenen Zeile bzw. Auftragsnummer vom .NET Script Heater ja wieder auf einen neuen Dateinamen gesetzt. Wenn die Exportdatei nicht existiert wird sie vom Textfile Adapter neu angelegt.
Ich könnte mir vorstellen, dass das an Datei Berechtigungen, etc. liegt. Die Exportdateien werden mit dem Skript im Verzeichnis der FlowHeater Definition angelegt. Verwenden Sie mal u.s. Skript hier können Sie zusätzlich noch einen Exportpfad angeben.
Die Definition läuft hier selbst wenn ich auf der WRITE Seite den Dateiname (Filename) entferne. Der Name wird nach jeder geschriebenen Zeile bzw. Auftragsnummer vom .NET Script Heater ja wieder auf einen neuen Dateinamen gesetzt. Wenn die Exportdatei nicht existiert wird sie vom Textfile Adapter neu angelegt.
Ich könnte mir vorstellen, dass das an Datei Berechtigungen, etc. liegt. Die Exportdateien werden mit dem Skript im Verzeichnis der FlowHeater Definition angelegt. Verwenden Sie mal u.s. Skript hier können Sie zusätzlich noch einen Exportpfad angeben.
Code:
string letzterAuftrag = String.Empty;
public object DoWork()
{
if (InValues.Length != 1)
throw new Exception("1 Eingangsparameter erwartet");
string auftrag = (string)InValues[0].GetString();
if (auftrag != null && auftrag != "@EOF" && letzterAuftrag != auftrag)
{
// Zugriff auf den Textfile Adapter der WRITE Seite
TextFileAdapter adapter = (TextFileAdapter)AdapterWrite;
// Exportpfad setzen/anpassen. Achtung Backslash am Ende nicht vergessen!
string exportpfad = @"C:\Temp\";
// neuen Dateinamen setzen
adapter.Filename = exportpfad + auftrag + " " + DateTime.Now.ToString("dd.MM.yyyy HH-mm-ss") + " MO" + ".txt";
// letzte Auftragsnummer merken.
letzterAuftrag = auftrag;
}
// für die weitere Verarbeitung = Filter zurückliefern
return auftrag;
}
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.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.315 Sekunden