Skip to main content
Weil einfach - produktiver ist

Der Daten Spezialist

Konvertieren Sie die Daten mühelos zwischen verschiedenen Formaten ohne Programmierkenntnisse dank Visual Designer. Effizient und super einfach.
Flowheater Download

Keine weiteren Verarbeitungsschritte bei Fehler möglich

Mehr
2 Jahre 3 Tage her #4551 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?
 

Bitte Anmelden um der Konversation beizutreten.

Mehr
2 Jahre 19 Stunden her #4553 von FlowHeater-Team
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
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"; }


Dateianhang:

Dateiname: dummy-datei.zip
Dateigröße:12 KB

 

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 um der Konversation beizutreten.

Mehr
2 Jahre 14 Stunden her #4555 von Ralf Birk
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:

 

Bitte Anmelden um der Konversation beizutreten.

Mehr
2 Jahre 1 Stunde her - 2 Jahre 1 Stunde her #4557 von FlowHeater-Team
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.

    
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 1 Stunde her von FlowHeater-Team.

Bitte Anmelden um der Konversation beizutreten.

Mehr
1 Jahr 11 Monate her #4558 von Ralf Birk
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.

Bitte Anmelden um der Konversation beizutreten.

Mehr
1 Jahr 11 Monate her #4559 von FlowHeater-Team
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.
 

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 um der Konversation beizutreten.

Ladezeit der Seite: 0.326 Sekunden

FlowHeater - Der Daten Spezialist

Effiziente Datenintegration und Transformation mit FlowHeater - Ihre Lösung für nahtlosen Datentransfer.

Rechtliches

Support & Kontakt

Kontaktinformation

Telefon:
0951 / 99339792

E-Mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.


Copyright © 2009-2024 by FlowHeater GmbH. Alle Rechte vorbehalten.