FlowHeater Demo Video
 
Der Daten Import / Export Spezialist
 
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Schauen Sie sich auch die verfügbaren Beispiele zum TextFile Adapter an evtl. kann Ihre Frage hiermit schon beantwortet werden: Codepage konvertieren 1 / 2 , Verarbeitung von CSV Kopf- und Fußzeilen , Import und Export von vCard Textdateien
  • Seite:
  • 1

THEMA:

Import-Datei auf Spaltenanzahl und Feldnamen prüfen 2 Wochen 6 Tage her #4023

  • Michael Schaffert
  • Michael Schafferts Avatar Autor
  • Offline
  • Beiträge: 8
Hallo zusammen,

gibt es eine Möglichkeit, beim TextFileAdapter (Read) zu prüfen, ob die Eingangsdatei (in diesem Fall CSV) die korrekte Spaltenanzahl aufweist und idealerweise auch noch die Spaltenüberschriften korrekt sind? Es geht darum zu prüfen, ob die Eingangsdatei das richtige Format hat, ansonsten sollte der Flow abgebrochen werden mit einer Fehlermeldung.

Vielen Dank für Eure Antworten!

Viele Grüße
Michael

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Letzte Änderung: von Michael Schaffert.

Import-Datei auf Spaltenanzahl und Feldnamen prüfen 2 Wochen 5 Tage her #4026

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Beiträge: 1549
Hallo Herr Schaffert,

das geht über einen vorgelagerten Verarbeitungsschritt.

Hier lesen Sie über den TextFile Adapter lediglich die erste Zeile (=Spaltennamen) in ein Feld ein. Aktivieren Sie hierzu auf dem Reiter „Trennzeichen“ den Punkt „Anderes Trennzeichen“ und vergeben Sie einen Wert der in Ihren Daten nicht vorkommt, z.B. #!#

So werden die Spaltenüberschriften in ein Feld eingelesen. Diesen Wert können Sie dann über einen IF-THEN-ELSE Heater prüfen ob das einem Refernzwert entspricht. Falls nicht beendet der Stop Heater die Verarbeitung mit einer definierbaren Fehlermeldung.

Hinweis: Der zweite Stop Heater wird nur benötigt damit bei der Spaltenprüfung nicht unnötig alle Daten der CSV Datei gelesen werden müssen.

Im Anhang finden Sie ein kleines Beispiel dazu



Dateianhang:

Dateiname: csv-spalte...efen.zip
Dateigröße:10 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:
Folgende Benutzer bedankten sich: Michael Schaffert

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

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.

Import-Datei auf Spaltenanzahl und Feldnamen prüfen 2 Wochen 5 Tage her #4027

  • Michael Schaffert
  • Michael Schafferts Avatar Autor
  • Offline
  • Beiträge: 8
Vielen Dank für das schnelle Feedback und den Tipp mit dem vorgelagerten Verarbeitungsschritt.
Hat prima geklappt!

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Import-Datei auf Spaltenanzahl und Feldnamen prüfen 2 Wochen 2 Tage her #4033

  • Michael Schaffert
  • Michael Schafferts Avatar Autor
  • Offline
  • Beiträge: 8
Hallo Herr Stark,

ergänzend zu meiner Frage mit der Feldnamen-Prüfung hat sich die Überlegung ergeben, ob es auch möglich ist, abhängig vom Ergebnis dieser Prüfung, den 2. Arbeitsschritt zu steuern.
Das heißt, ist die Eingabe-Datei mit den Feldnamen des Typs 1 (Name, Vorname, Kd.-Nr.) versehen, soll eine andere Verarbeitung durchgeführt werden als wenn diese vom Typ 2 (Firma, Kd-Nr.) sind. 
Ist so etwas denkbar?

Viele Grüße
Michael 

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Import-Datei auf Spaltenanzahl und Feldnamen prüfen 2 Wochen 1 Tag her #4036

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Beiträge: 1549
Hallo Herr Schaffert,

ja und nein. Es wäre theoretisch denkbar hier über den .NET Script Heater was zu bauen, ist aber schwer wartbar und nicht empfehlenswert. Auf der TODO Liste steht so eine ähnliche Funktionalität für den FlowHeater Server um bei einer Verzeichnisüberwachung zu entscheiden welche Definition jetzt aufgerufen werden muss.

Bis dahin am besten über das Batch Modul und Wildcards arbeiten. Meistens haben die zu verarbeitenden Textdateien einen passenden Namen worüber eingegrenzt werden kann um welchen Dateityp es sich handelt.

z.B.
set FHBATCH="C:\Program Files (x86)\FlowHeater V4\BIN\FHBatch.exe"

%FHBATCH% /ReadFileName “Hersteller-1-*.csv” Import-Hersteller-1.fhd"
%FHBATCH% /ReadFileName “Hersteller-2-*.csv” Import-Hersteller-2.fhd"
…

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.

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.

Import-Datei auf Spaltenanzahl und Feldnamen prüfen 6 Tage 18 Stunden her #4062

  • Michael Schaffert
  • Michael Schafferts Avatar Autor
  • Offline
  • Beiträge: 8
Hallo Herr Stark,

ganz so einfach mit den Dateinamen stellt sich das leider nicht dar.
Generell funktioniert das mit den Wildcards und dem Batch-Modul ganz gut.
Es gibt jedoch einen Fall, bei dem die Dateien gleich heißen und sich nur über den internen Aufbau der Spalten unterscheiden.
Haben Sie noch eine Idee, wie man das abfangen könnte?

Viele Grüße
Michael Schaffert

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Import-Datei auf Spaltenanzahl und Feldnamen prüfen 6 Tage 14 Stunden her #4066

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Beiträge: 1549
Hallo Michael,

hier mal ein Beispiel wie es geht, im Anhang gibt´s auch ein kleines Beispiel dazu.

Folgendes wird gemacht)
Im ersten Verarbeitungsschritt wird geprüft um welchen Dateityp es sich handelt. Hierzu wird untenstehendes C# Skript für den .NET Script Heater verwendet Im Skript werden erstmal alle Verarbeitungsschritte, außer dem ersten Verarbeitungsschritt, deaktiviert. Dann wird anhand der CSV Spaltenüberschriften geprüft welche Datei vorliegt und dieser Verarbeitungsschritt wird dann aktiviert, siehe Kommentare im Skript.

Die Definition benötigt also einen initialen ersten Verarbeitungsschritt um die Steuerung zu implementieren, sowie beliebig viele die dann jeweils einen bestimmten Dateityp verarbeiten.

Wie schon geschrieben ist das sehr komplex und nicht unbedingt wartungsfreundlich.

C# Skript um Dateityp/Aufbau zu prüfen und abhänig davon einen Verarbeitungsschritt zu aktivieren
public object DoWork()
{
    int step = 0;
    string header = (string)InValues[0].GetString();

    // alle ausser ersten Verarbeitungsschritt deaktivieren!
    for (int i = 1; i < AdapterRead.Flow.Steps.Count; i++)
    {
        AdapterRead.Flow.Steps[i].Active = false;
    }

    // CSV Spaltenüberschriften prüfen
    switch(header)
    {
        case "ID;S1;S2":    // wenn dieser Typ, dann
            step = 2;     // soll der 2. Verarbeitungsschritt ausgeführt werden
            break;

        case "ID;S1":       // wenn dieser Typ, dann
            step = 3;     // soll der 3. Verarbeitungsschritt ausgeführt werden
            break;

        // weitere Prüfungen nach diesen Schema
    

        // Falls keine Prüfung zutrifft wird ein Fehler ausgegeben.
        default:
            throw new Exception("Dateitype nicht erkannt!");
    }

    AdapterRead.Flow.Steps[step - 1].Active = true;

    return header;
}

Dateianhang:

Dateiname: datei-aufb...efen.zip
Dateigröße:14 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.

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.

Import-Datei auf Spaltenanzahl und Feldnamen prüfen 5 Tage 20 Stunden her #4069

  • Michael Schaffert
  • Michael Schafferts Avatar Autor
  • Offline
  • Beiträge: 8
Hallo Robert,

Vielen Dank für das kleine Script.
So kompliziert fand ich das jetzt gar nicht. C++ kenn ich noch aus dem Studium.  =)
Ich habe es noch ein bisschen angepasst und jetzt funktioniert es genauso wie ich es mir vorgestellt hatte. Super!

Eine kleine Frage hab ich aber dennoch dazu: Kann man die Warnungen, welcher Verarbeitungsschritt nicht ausgeführt wird, in der Batch-Ausführung unterdrücken? Das verwirrt sonst später die Anwender, die sollen sich ja auch wirkliche Warnungen und Fehler konzentrieren können.
Wenn ich beim 1. Verarbeitungsschritt die Checkbox Eigenschaften "Warnungen ignorieren" setze, hat das irgendwie keine Auswirkung auf die Ausgabe auf der Konsole.

Viele Grüße
Michael

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Import-Datei auf Spaltenanzahl und Feldnamen prüfen 5 Tage 3 Stunden her #4071

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Beiträge: 1549
Hallo Michael,

das geht leider nicht, außer das Batch Modul wird explicit mit der Option /ExecuteSteps aufgerufen. In dem Fall wird, falls Verarbeitungsschritte übersprungen wurden, keine Warnung ausgegeben.

Alternativ dazu könnten alle Warnungen im Batch Modul  über die Option /DisableWarnings deaktiviert werden.

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.

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.
  • Seite:
  • 1

andere Sprachen

en

FlowHeater Home

de en

Impressum/Kontakt

Datenschutz

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

Follow us on

twitter  facebook

YouTube

 de en