Der Daten Import / Export Spezialist
 
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Schauen Sie sich auch die verfügbaren allgemeinen Beispiele an evtl. kann Ihre Frage hiermit schon beantwortet werden: Hello World 1 / 2 / 3 , Zahlen in Zeichenketten formatieren , Einfache Wenn-Dann-Sonst Bedingung , Komplexe If-Then-ElseIf ... Bedingung , Daten filtern und gruppieren , Daten gruppieren und Werte über die Gruppierung summieren
  • Seite:
  • 1

THEMA:

Keine weiteren Verarbeitungsschritte bei Fehler möglich 1 Monat 5 Tage her #4551

  • Ralf Birk
  • Ralf Birks Avatar Autor
  • Offline
  • Beiträge: 110
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 oder Registrieren um der Konversation beizutreten.

Keine weiteren Verarbeitungsschritte bei Fehler möglich 1 Monat 2 Tage her #4553

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Beiträge: 1766
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
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.
Anhänge:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Keine weiteren Verarbeitungsschritte bei Fehler möglich 1 Monat 2 Tage her #4555

  • Ralf Birk
  • Ralf Birks Avatar Autor
  • Offline
  • Beiträge: 110
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:

 
Anhänge:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Keine weiteren Verarbeitungsschritte bei Fehler möglich 1 Monat 1 Tag her #4557

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Beiträge: 1766
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.

    
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.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Letzte Änderung: von FlowHeater-Team.

Keine weiteren Verarbeitungsschritte bei Fehler möglich 1 Monat 1 Tag her #4558

  • Ralf Birk
  • Ralf Birks Avatar Autor
  • Offline
  • Beiträge: 110
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 oder Registrieren um der Konversation beizutreten.

Keine weiteren Verarbeitungsschritte bei Fehler möglich 1 Monat 1 Tag her #4559

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Beiträge: 1766
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 oder Registrieren um der Konversation beizutreten.

  • Seite:
  • 1
Ladezeit der Seite: 0.143 Sekunden

andere Sprachen

en

FlowHeater Home

de en

Impressum/Kontakt

Datenschutz

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

Follow us on

twitter  facebook

YouTube

 de en