- Beiträge: 132
Keine weiteren Verarbeitungsschritte bei Fehler möglich
- Ralf Birk
- Autor
- Offline
- Benutzer
Weniger
Mehr
2 Jahre 7 Monate her #4551
von Ralf Birk
Keine weiteren Verarbeitungsschritte bei Fehler möglich wurde erstellt von Ralf Birk
Hallo Robert,
heute habe ich eine Frage, bei der ich nicht so richtig weiß wie ich sie beschreiben soll.
Das ganze läuft über einen Batch-In einer Definition mit 5 Verarbeitungsschritten Schreibe ich Adressdaten in den Inmemory. Den Namen der Eingangsdatei schreibe ich in eine Variable.
Im 2. Bearbeitungsschritt muss ich noch Testdaten importieren die mit diversen Anpassungen an die Daten im Inmemory angehängt werden.
Das klappt auch hervorragend und alles läuft durch bis zum letzten Verarbeitungsschritt. Wenn es zu der ersten Adressdatei aber keine passende Datei mit Testdaten im 2 Schritt gibt macht er mit dem 3. nicht weiter sondern überspringt diese Datei und fährt mit der nächsten fort.
Hier ein Beispiel:
Im Eingangsverzeichnis sind folgende Daten:
Adressen1.csv
Adressen2.csv
Adressen3.csv
Adressen4.csv
Testdadressen1.csv
Testdadressen4.csv
Gestartet wird das ganze mit: %FHBATCH% /ReadFileName .\Eingang\Adressen*.csv .\Flows\Test.fhd
Im ersten V.Schritt wird der Dateiname in eine Variable geschrieben.
In zweiten V.Schritt habe ich im Read-Adapter "..\Eingang\Testdatressendressen$Datei$.csv" stehen.
Die Datei Adressen1.csv und Adressen4.csv laufen wie geplant bis zum ende durch.
Da es von2 und 3 keine Testadressen gibt bricht dieser Durchlauf nach dem 1 V.Schritt ab.
Auch diese Dateien sollen natürlich bis zum Ende durchlaufen... nur ohne die Zusätzlichen Adressen aus Step 2.
Gibt es hier eine Chance das Verhalten bei solch einem Error zu verändern?
heute habe ich eine Frage, bei der ich nicht so richtig weiß wie ich sie beschreiben soll.
Das ganze läuft über einen Batch-In einer Definition mit 5 Verarbeitungsschritten Schreibe ich Adressdaten in den Inmemory. Den Namen der Eingangsdatei schreibe ich in eine Variable.
Im 2. Bearbeitungsschritt muss ich noch Testdaten importieren die mit diversen Anpassungen an die Daten im Inmemory angehängt werden.
Das klappt auch hervorragend und alles läuft durch bis zum letzten Verarbeitungsschritt. Wenn es zu der ersten Adressdatei aber keine passende Datei mit Testdaten im 2 Schritt gibt macht er mit dem 3. nicht weiter sondern überspringt diese Datei und fährt mit der nächsten fort.
Hier ein Beispiel:
Im Eingangsverzeichnis sind folgende Daten:
Adressen1.csv
Adressen2.csv
Adressen3.csv
Adressen4.csv
Testdadressen1.csv
Testdadressen4.csv
Gestartet wird das ganze mit: %FHBATCH% /ReadFileName .\Eingang\Adressen*.csv .\Flows\Test.fhd
Im ersten V.Schritt wird der Dateiname in eine Variable geschrieben.
In zweiten V.Schritt habe ich im Read-Adapter "..\Eingang\Testdatressendressen$Datei$.csv" stehen.
Die Datei Adressen1.csv und Adressen4.csv laufen wie geplant bis zum ende durch.
Da es von2 und 3 keine Testadressen gibt bricht dieser Durchlauf nach dem 1 V.Schritt ab.
Auch diese Dateien sollen natürlich bis zum Ende durchlaufen... nur ohne die Zusätzlichen Adressen aus Step 2.
Gibt es hier eine Chance das Verhalten bei solch einem Error zu verändern?
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
2 Jahre 7 Monate her #4553
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 Keine weiteren Verarbeitungsschritte bei Fehler möglich
Hallo Ralf,
das kannst du mit meiner Dummy Datei und folgenden kleinen C# Skript für den .NET Script Heater lösen.
Das Skript prüft ob es zu der aktuellen Eingangsdatei eine Testadressen Datei gibt. Wenn ja wird der Dateinamen dieser Testadressen Datei zurückgegeben, wenn nicht wird ein Dummy Dateiname zurückgeliefert. Diese Datei muss vorhanden sein und am besten hat diese Datei keinen Inhalt ober aber nur die Spaltenüberschriften, je nachdem wie deine Dateien aufgebaut sind.
Mit dem Dateinamen wir ein FlowHeater Parameter gesetzt der im zweiten Verarbeitungsschritt als Dateinamen verwendet wird. Im Anhang findest du ein kleines Beispiel dazu.
C# Skript - Prüfen ob Datei vorhanden ist
das kannst du mit meiner Dummy Datei und folgenden kleinen C# Skript für den .NET Script Heater lösen.
Das Skript prüft ob es zu der aktuellen Eingangsdatei eine Testadressen Datei gibt. Wenn ja wird der Dateinamen dieser Testadressen Datei zurückgegeben, wenn nicht wird ein Dummy Dateiname zurückgeliefert. Diese Datei muss vorhanden sein und am besten hat diese Datei keinen Inhalt ober aber nur die Spaltenüberschriften, je nachdem wie deine Dateien aufgebaut sind.
Mit dem Dateinamen wir ein FlowHeater Parameter gesetzt der im zweiten Verarbeitungsschritt als Dateinamen verwendet wird. Im Anhang findest du ein kleines Beispiel dazu.
C# Skript - Prüfen ob Datei vorhanden ist
Code:
public object DoWork()
{
if (InValues.Length != 1)
throw new Exception("1 Eingangsparemeter erwartet!");
// Ersten Eingangsparameter holen
string filename = (string)InValues[0].GetString();
// prüfen ob die Datei existiert?
if (File.Exists(filename))
return filename;
// hier ggf. den Dummy Dateinamen ändern!
return "dummy.txt";
}
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.
- Ralf Birk
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 132
2 Jahre 7 Monate her #4555
von Ralf Birk
Ralf Birk antwortete auf Keine weiteren Verarbeitungsschritte bei Fehler möglich
Hallo Robert,
danke für deine Antwort.
Die Lösung ist toll und hervorragend nach zu vollziehen.
Leider Funktioniert das Matchen des Dateinamens in dem Script scheinbar nur im selben Verzeichnis wie die .fhd.. Kann das sein?
Bei einer Adressdatei zu der es Testdaten gibt nimmt er trotzdem die Dummy-Datei. Wenn ich den Name nach dem Append(vor deinem Script) in den Write schreibe sehe ich das der Name 100% stimmt. Ziehe ich eine Pipe nach deinem Script in den Write steht da "Dummy.csv".
Wie bekomme ich den Verzeichnispfad der Datei in das Script?
So sehen die Verzeichnisse des Projekts aus:
danke für deine Antwort.
Die Lösung ist toll und hervorragend nach zu vollziehen.
Leider Funktioniert das Matchen des Dateinamens in dem Script scheinbar nur im selben Verzeichnis wie die .fhd.. Kann das sein?
Bei einer Adressdatei zu der es Testdaten gibt nimmt er trotzdem die Dummy-Datei. Wenn ich den Name nach dem Append(vor deinem Script) in den Write schreibe sehe ich das der Name 100% stimmt. Ziehe ich eine Pipe nach deinem Script in den Write steht da "Dummy.csv".
Wie bekomme ich den Verzeichnispfad der Datei in das Script?
So sehen die Verzeichnisse des Projekts aus:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
2 Jahre 7 Monate her - 2 Jahre 7 Monate her #4557
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 Keine weiteren Verarbeitungsschritte bei Fehler möglich
Hallo Ralf,
nein, das Skript kann auch mit absoluten Pfadangaben umgehen. Wenn dein übergebener Pfad wirklich passt und die Datei existiert, dann wird der auch wieder komplett zurückgegeben. Bitte prüfe mal mit einem DIR in der Konsole ob dein zusammengebauter Pfad auch wirklich die Datei findet. Ich gehe davon aus, dass du hier einen „kleinen“ Fehler drin hast.
Wenn die Dummy Datei in einem anderen Verzeichnis liegt als kannst du das z.B. so angeben.
PS: Die Hochkommas und das “@” Zeichen dürfen im zusammengebauten Dateinamen nicht vorkommen!
nein, das Skript kann auch mit absoluten Pfadangaben umgehen. Wenn dein übergebener Pfad wirklich passt und die Datei existiert, dann wird der auch wieder komplett zurückgegeben. Bitte prüfe mal mit einem DIR in der Konsole ob dein zusammengebauter Pfad auch wirklich die Datei findet. Ich gehe davon aus, dass du hier einen „kleinen“ Fehler drin hast.
Wenn die Dummy Datei in einem anderen Verzeichnis liegt als kannst du das z.B. so angeben.
Code:
return @"C:\Temp\dummy.txt";
PS: Die Hochkommas und das “@” Zeichen dürfen im zusammengebauten Dateinamen nicht vorkommen!
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.
Letzte Änderung: 2 Jahre 7 Monate her von FlowHeater-Team.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Ralf Birk
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 132
2 Jahre 7 Monate her #4558
von Ralf Birk
Ralf Birk antwortete auf Keine weiteren Verarbeitungsschritte bei Fehler möglich
Ich kann es drehen und wenden wie ich will. Am Ende nimmt er immer die "leere" Dummy.csv
Die Dateinamen stimmen zu 100%. und beide Dateien (Adressdatei und Testdaten) liegen im selben "Eingang_Rohdaten" Ordner.
Mir scheint nicht der Pfad des Dummy File das Problem zu sein sondern der der Testdaten.
Die Dateinamen stimmen zu 100%. und beide Dateien (Adressdatei und Testdaten) liegen im selben "Eingang_Rohdaten" Ordner.
Mir scheint nicht der Pfad des Dummy File das Problem zu sein sondern der der Testdaten.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
2 Jahre 7 Monate her #4559
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 Keine weiteren Verarbeitungsschritte bei Fehler möglich
Hallo Ralf,
den Dateinamen für die Testdaten den du zusammenstellst muss entweder ein absoluter Pfad sein inkl. Laufwerksangaben, etc. oder aber ein relativer Pfad zum Ordner der Definition sein.
z.B.
C:\Temp\Testdaten\testadressen1.csv
oder aber
..\Testdaten\testadressen1.csv
Diesen Pfad bitte nicht nur visuell sondern per DIR im Konsolenfenster mal überprüfen.
den Dateinamen für die Testdaten den du zusammenstellst muss entweder ein absoluter Pfad sein inkl. Laufwerksangaben, etc. oder aber ein relativer Pfad zum Ordner der Definition sein.
z.B.
C:\Temp\Testdaten\testadressen1.csv
oder aber
..\Testdaten\testadressen1.csv
Diesen Pfad bitte nicht nur visuell sondern per DIR im Konsolenfenster mal überprüfen.
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.284 Sekunden