FlowHeater Demo Video
 
Der Daten Import / Export Spezialist
 
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
×

Erweiterte Suche

Suche nach Stichwort
×

Suchoptionen

Finde Beiträge von
Ergebnisse sortieren nach
Suche zu einem bestimmten Zeitpunkt
Zu Resultat springen
Suche in Kategorien
×

Suchergebnisse

Gesucht wurde: csv lookup
27 Jun 2016 18:22
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Elsner,

es gibt derzeit zwei Möglichkeiten sowas durchzuführen.
  1. Relativ einfach über den String Replace Heater und einem CSV Lookup. Sie benötigen pro Feld das Sie aus der zweiten CSV Datei verwenden möchten benötigen Sie einen CSV Lookup bzw. String Replace Heater. Hier finden Sie einige Beispiel dazu:
    Mehrere CSV Input Dateien auf der READ Seite
    Vergleichswerte aus einer Textdatei heranziehen
    weitere Beispiel zum CSV Lookup hier im Forum ...

  2. Etwas komplizierter über eine temporäre SQlite Datenbank . Diese Lösung ist vorzuziehen wenn viele Felder einer oder von mehreren CSV Dateien eingemischt werden sollen.

    Hier finden Sie ein ausführliches Beispiel dazu: CSV und Excel Daten über SQLite Datenbank zusammenführen

    Das Beispiel verwendet zwar eine Excel und eine CSV Textdatei , kann aber leicht an Ihre Bedürfnisse angepasst bzw. erweitert werden
Kategorie: TextFile Adapter
12 Apr 2016 06:17
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Brandt,

um mehrere READ Quellen miteinander zu verknüpfen gibt es mehrere Möglichkeiten. In Ihre Fall die einfachste wird es sein einfach die zwei Tabellen bereits beim Lesen mit dem Datenbank Adapter auf der READ Seite über einen SQL JOIN miteinander zu verknüpfen.

z.B.
SELECT * FROM tabelleA LEFT JOIN tabelleB on tabelleA.Artikelnummer = tabelleB.Artikelnummer

Der LEFT JOIN wird in Ihrem Fall benötigt da in Tabelle B nicht alle Datensätze vorhanden sind.

Andere Möglichkeiten mehrere READ Quellen miteinander zu verknüpfen wären.
  1. Wenn die Daten in CSV Textdateien vorliegen, können Sie einen CSV Lookup über den String Replace Heater verwenden. Beispiel dazu finden Sie hier :

  2. Über den SQL Heater und einem SQL Lookup, Beispiele dazu finden Sie hier .

  3. Über eine Temporäre SQLite Datenbank , ein Beispiel dazu finden Sie hier: CSV und Excel Daten über SQLite Datenbank zusammenführen
Subtrahieren mit Bedingung)
Dazu benötigen Sie den IF-THEN-ELSE Heater , über den Sie die Bedingung definieren „Wenn Lager größer gleich 9995 und kleiner gleich 9999“ dann subtrahiere von dem Wert den Bestand aus Tabelle B. Der IF-THEN-ELSE Heater leitet den Wert der Tabelle B nur an den Subtraction Heater weiter wenn die Bedingung zutrifft, im Anhang finden Sie ein kleines Beispiel dazu.

Dateianhang:

Dateiname: subtrahier...gung.zip
Dateigröße:2 KB
Kategorie: TextFile Adapter
29 Mär 2016 05:42
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Birk,

der String Replace Heater Funktioniert so wie er es soll :) hat aber mehrere unterschiedliche Funktionen die dementsprechend Parametrisiert werden müssen.

Hier mal ein Beispiel Ihrer Konfiguration mit Zeichen.
Nehmen wir als Input die Zeichenkettte „abc“. Wenn sie nun in Ihrer Liste
a;A
b;B
c;C
stehen haben würde der String Replace Heater aus klein „abc“ -> groß „ABC“ machen. Die Funktionalität ist für einen CSV Lookup (das ist denke ich was Sie möchten) nicht sinnvoll.

Hierzu müssen Sie den String Replace Heater so konfigurieren, dass die Eingangszeichenfolge als Ganzes verglichen wird, im Screenshot sehen Sie die komplette Konfiguration. So ist sichergestellt dass eine „1“ im Wert „1000“ nicht bereits durch „eins000“ ersetzt wird bevor der eigentliche Wert „1000“ in der CSV Ersetzungsliste drankommt, der dann natürlich nicht mehr greift.

Kategorie: Allgemein
08 Mär 2016 06:35
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Hesse,

mehrere Adapter werden derzeit nur auf der WRITE Seite unterstützt, für die READ Seite ist es in Planung.

Der FlowHeater unterstützt aber zwei andere Leistungsfähige varianten um mehrere CSV Dateien miteinander zusammenzuführen.
  1. Wenn nur wenige Felder aus einer oder auch mehreren CSV Dateien in eine „Haupt CSV Datei eingefügt werden müssen genügt meistens ein CSV Lookup über den String Replace Heater .

    Beispiele dazu finden Sie hier im Forum genügend

  2. Wenn Sie sehr komplexe CSV Dateien haben und aus mehreren CSV Dateien vielen Spalten zusammengeführt werden müssen ist der Umweg über eine temporäre SQLite Datenbank besser. Hier finden Sie ein ausführliches Beispiel, wie Excel und CSV Dateien miteinander vermischt werden können: CSV und Excel Daten über SQLite Datenbank zusammenführen
Kategorie: TextFile Adapter
11 Nov 2015 20:25
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Rabe,

hierzu gibt es zwei mögliche Varianten.
  1. Sie exportieren über eine eigene vorgelagerte Definition die benötigten Daten in eine CSV Textdatei und verwenden diese um in der eigentlichen Definition mittels des String Replace Heater einen CSV Lookup zu implementieren.

    Beispiele zum CSV Lookup finden Sie hier:
    Aus 2 CSV Dateien eine CSV Datei erstellen
    Mehrere Datenquellen auf der READ Seite

  2. Sie fügen diese SQL Datenquelle als weiteren Adapter auf der WRITE Seite hinzu (siehe Screenshot). Im Adapter aktivieren Sie die Optionen "Daten anfügen (Insert)" und „Keine Daten ändern oder hinzufügen nur SQL Skript generieren“. So werden in der SQL Datenbank keine Daten geändert oder hinzugefügt, wichtig Sie müssen min. ein Feld mit dem Adapter verbinden. Nun können Sie den SQL Heater verwenden um aus dieser Datenquelle per Lookup Daten abzurufen.

    Achtung: Der Adapter für die SQL Datenquelle muss als erster Adapter vorhanden sein, da der SQL Heater momentan nur auf den ersten Adapter zugreifen kann!

Kategorie: Excel Adapter
03 Okt 2015 08:17
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Brandt,

das können Sie über einen CSV Lookup mit dem String Replace Heater durchführen.

Sie benötigen dazu eine CSV Textdatei , die mindestens eine Spalte mit den zu verarbeitenden Kundennummern enthält. Diese CSV Datei tragen Sie im String Replace Heater als Ersetzungsdatei ein die für den CSV Lookup verwendet werden soll. Der String Replace Heater prüft nun anhand dieser Liste ob die Eingegebene Kundennummer vorhanden ist und liefert die angegebene Spalte zurück, in Ihrem Fall ist das die gleiche Spalte. Nun müssen Sie noch angeben, dass der String Replace Heater einen definierten Standardwert zurückliefern soll wenn der Eintrag nicht gefunden wurde.

Auf diesen Rückgabewert können Sie nun eine IF-THEN-ELSE Bedingung anwenden um die nicht gewollten Datensätze zu filtern .

Im Anhang habe ich Ihnen ein kleines Beispiel beigefügt.



Dateianhang:

Dateiname: csv-lookup.zip
Dateigröße:2 KB
Kategorie: TextFile Adapter
19 Jun 2015 07:10
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Wende,

das geht über einen CSV Lookup mit Hilfe des String Replace Heaters .

Vorgehen
Auf der READ Seite lesen Sie Ihre zweite CSV Datei und verbinden die Felder mit der CSV Datei der WRITE Seite des TextFile Adapters .

Dann benötigen Sie einen String Replace Heater um in der ersten CSV Datei nachzusehen ob ein passender Datensatz vorhanden ist. Falls nicht wird der Heater so konfiguriert, dass der Wert „Nicht gefunden“ zurückgeliefert wird. Mittels dieser Rückgabe wird eine Filterbedingung gebildet um die die nicht benötigten CSV Sätze zu filtern .

Im Anhang finden Sie ein kleines Beispiel dazu. Der String Append Heater wird benötigt um die Textbegrenzungszeichen („Hochkommas“) wieder an den Inhalt anzufügen, damit kann der String Replace Heater noch nicht umgehen.

Das hier beschriebene Vorgehen kann auch mit CSV Dateien mit 60.000 Zeilen verwendet werden. Um noch größere Datenmengen verarbeiten zu können kann auch der Umweg über eine Temporäre Datenbank gemacht werden. Hier finden Sie ein kleines Beispiel dazu: CSV und Excel Daten über SQLite Datenbank zusammenführen

Dateianhang:

Dateiname: csv-lookup...eich.zip
Dateigröße:2 KB
Kategorie: TextFile Adapter
09 Jan 2015 06:27
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Marcus,

um zwei CSV Textdateien zusammenzuführen gibt es mehrere Möglichkeiten.

Wenn wie in Ihrem Fall nur wenige Daten aus einer zweiten CSV benötigt werden können Sie das über den String Replace Heater im erweiterten Modus mit Hilfe eines CSV Lookups durchführen.

Ein Beispiel wie so ein CSV Lookup funktioniert finden Sie hier: CSV Lookup Beispiel

Hinweis: Pro Wert den Sie so aus der zweiten CSV Datei holen möchten benötigen Sie einen separaten String Replace Heater.

Etwas komplizierter aber dafür wesentlich leistungsfähiger geht es über eine temporäre Datenbank. Wie das geht ist in einem ausführlichen Beispiel hier beschrieben: CSV und Excel Daten über SQLite Datenbank zusammenführen

Hier wird das zwar anhand einer CSV und einer Excel Datei beschrieben, die Logik kann aber auch auf zwei CSV Dateien angepasst werden.
Kategorie: TextFile Adapter
29 Dez 2014 06:44
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Brenz,

der Export von mehreren SQL Server Tabellen in eine CSV Textdatei ist relativ einfach. Hierzu müssen Sie lediglich das SQL SELECT Statement auf der READ Seite anpassen und die weiteren Tabellen über einen JOIN miteinander verknüpfen.

Beispiel SQL Select Statement

select p .name, p .gebdat, w.wohnort, v.verein
from t_person as p
inner join t_wohnort as w on p.wohnortid = w.id
inner join t_verein as v on p.vereinid = v.id
‚ evtl. weitere SQL Server Tabellen
order by p.name

So verknüpft der SQL Server die Tabellen miteinander und liefert die richtige Ergebnismenge zurück.

Der Import ist deutlich komplizierter es gibt hierzu mehrere Möglichkeiten. Am einfachsten geht es über mehrere Definitionen die nacheinander ausgeführt werden.

Sie benötigen für jede SQL Server ID Tabelle eine separate Import Definition.

z.B.
  1. eine Import Definition die über die CSV Datei geht und lediglich nicht vorhandene Wohnorte in der Tabelle Wohnorte einfügt.

  2. eine Import Definition die über die CSV Datei geht und lediglich nicht vorhandene Vereine in der Tabelle Vereine anfügt.

  3. evtl. weitere Import Definitionen für weitere SQL Server ID Tabellen.

Wenn Sie in diesen Import Definitionen die Option „Daten anfügen (Insert)“ sowie „Vorhandene Datensätze ignorieren“ aktivieren und dann noch den Ausgelesenen Primary Key von der AutoWert (ID Spalte) auf z.B. den Wohnort oder Vereinsnamen legen, prüft der FlowHeater automatisch anhand dieses Wertes ob ein passender Datensatz bereits existiert und fügt nur einen neuen Datensatz an wenn der Wert noch nicht vorhanden ist. Weitere Informationen dazu finden Sie hier: Import CSV Textfile zu MSSQL vorhandene Datensätze überspringen

Zum Schluss benötigen Sie noch Ihre eigentliche CSV Datenimport Definition. Um die ID Werte zu holen benötigen Sie für jede ID Spalte (Wohnort, Verein, …) einen SQL Heater über den Sie einen Daten Lookup abbilden.

Beispiel ID Lookup SQL Statement
select id from t_verein where verein = ‚$VEREIN_AUS_CSV$‘

der Parameter$VEREIN_AUS_CSV$“ muss dazu vorher mittels des Set Parameter Heaters gesetzt werden. Im Anhang finden Sie ein Beispiel dazu inkl. einer Access Datenbank .



Hinweis: Die einzelnen Daten Import Definitionen können mittels des Batch Moduls und eines kleines CMD Skripts automatisiert hintereinander ausgeführt werden.

Beispiel Batch CMD Skript

@echo off
FHBatch.exe CSV-Abgleich-Wohnorte.fhd
FHBatch.exe CSV-Abgleich-Vereine.fhd
FHBatch.exe CSV-Import-Personen.fhd

Ein genaueres Beispiel finden Sie hier: Automatisierter Batch CSV Import mit MS Access


Dateianhang:

Dateiname: csv-import...llen.zip
Dateigröße:14 KB
Kategorie: SqlServer Adapter
07 Nov 2014 06:35
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Bojic,

um herauszufinden welche Elemente in Ihrem CSV Lookup nicht vorhanden sind müssen Sie einmal im String Replace Heater einen Default Wert definieren, der zurückgegeben wird falls kein passender Eintrag in Ihrer CSV Ersetzungsliste gefunden wird. Über diesen Rückgabewert können Sie nun einen Filter legen, als Bedingung verwenden Sie den definierten Default Wert. Im IF-THEN-ELSE können Sie nun die Bedingung negieren so können Sie einmal sehen welche Werte überhaupt nicht vorhanden sind bzw. nur Werte verarbeiten die auch in Ihrer CSV Ersetzungsliste vorhanden sind.

Im Anhang finden Sie ein kleines Beispiel dazu.

Dateianhang:

Dateiname: csv-lookup...tern.zip
Dateigröße:2 KB
Kategorie: Allgemein
09 Aug 2014 10:03
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Bojic,

ich denke Sie möchten nicht sortieren sondern lediglich einen Abgleich (Daten Lookup) durchführen?

Je nachdem welche bzw. wie Ihre Daten vorliegen gibt es hier mehrere Möglichkeiten. Textdateien über einen CSV Lookup mittels des String Replace Heaters . Oder aber wenn die Daten in einer Datenbank vorhanden sind können Sie den SQL Heater oder aber den Lookup Heater dazu verwenden.

Wenn Sie hier im Forum nach CSV Lookup oder generell Lookup suchen finden Sie bereits einige Beispiele.

PS: Ich helfe Ihnen wirklich gerne, aber zukünftig bitte wenn Ihre Frage beantwortet ist hier noch eine kurze Antwort posten, Danke.
Kategorie: Allgemein
09 Aug 2014 09:47
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Bloess,

Sie benötigen für jede CSV Satzart eine separate Definition. Hier fügen Sie zu allererst einen Filter ein, so dass nur die gewünschte CSV Satzart verarbeitet wird. Ich habe Ihnen mal eine Beispiel für die CSV Satzart C* erstellt. Das Beispiel verwendet eine Access Datenbank und ist komplett funktionsfähig. Würde aber auch mit dem SQL Server zusammen laufen.

Dann verwende ich im Beispiel eine Kopfzeile um die darin enthaltene „Kunden-Nr“ zu extrahieren. Die Kopfzeile wird dabei komplett in den Parameter $KOPF$ eingelesen, der dann mit Hilfe des String Split Heaters lediglich die gewünschte „Kunden-Nr“ zurückliefert. Für die VID verwende ich einen SQL Heater . Den dafür erforderlichen Parameter setzen wir vorher mittels des Set Parameter Heaters .

Hinweis: Der SQL Heater ist wesentlich einfacher und flexibler als der Datenbank Lookup Heater , deshalb wurde er in dem Beispiel verwendet.

Das setzen des Autowert Feldes „ID“ ist nicht erforderlich, darum kümmert sich die Datenbank. Alle anderen Felder wurden nur 1:1 durchgereicht.

Für die CSV Satzart P* müssten Sie sich auf diese Basis eine weitere Import Definition basteln. Über das Batchmodul können Sie dann die beiden Import Vorgänge automatisiert zusammen ausführen lassen.

Hier noch ein kleines Beispiel wie mit Hilfe des Batch Moduls CSV Dateien automatisiert eingelesen werden können: Automatisierter Batch CSV Import mit MS Access


Dateianhang:

Dateiname: unterschie...eren.zip
Dateigröße:16 KB



Kategorie: TextFile Adapter
09 Jul 2014 19:01
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Neumann,

der einfachste Weg das zu realisieren ist über den Umweg eines CSV Lookup mittels des String Replace Heaters .

Dazu müssen Sie zuerst eine Excel Datei, die mit den neuen Personalnummern, in eine CSV Textdatei umwandeln. Fassen Sie dabei alle Schlüsselfelder, in Ihrem Fall Vorname und Nachname, zu einer Ausgabespalte in der CSV Datei zusammen. Dazu verwenden Sie den String Append Heater und geben als Feldtrennzeichen z.B. das Zeichen # an. Hinweis: CSV Spaltentrennzeichen ist weiterhin ein Strichpunkt.

Wenn die „lookup.csv“ steht können Sie die eigentliche Definition angehen, die die Ihre Excel Arbeitsmappe liest und eine neue Excel Arbeitsmappe schreibt.

Hier fassen Sie wiederum die Schlüsselfelder „Vorname“ und „Nachname“ mittels des String Append Heater zusammen, das Trennzeichen # nicht vergessen. Den Output übergeben Sie an den String Replace Heater. Mit dessen Hilfe können Sie nun aus der oben erzeugten „lookup.csv“ die neue Personalnummer herausholen. Der Replace Heater muss noch so konfiguriert werden, so dass bei keiner Übereinstimmung (kein match) der Wert „NOT FOUND“ oder aber ein anderer nicht vorhandener Bezeichner zurückgeliefert wird. Das wird dann anschließend in einem IF-THEN-ELSE Heater geprüft um entweder die neue oder ggf. die alte Personalnummer dem Excel Feld auf der Ausgabeseite zuzuweisen.

Im Anhang befindet zu eine kleines Beispiel.

Dateianhang:

Dateiname: excel-csv-lookup.zip
Dateigröße:2 KB
Kategorie: Excel Adapter
21 Mai 2014 06:06
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Schütz,

mehrere „unterschiedliche“ Datenquellen werden zurzeit noch nicht unterstützt, allerdings gibt es einige Lösungsansätze wie Sie das bereits jetzt relativ einfach umsetzen können.

Wenn ich Sie richtig verstanden habe geht es bei Ihnen darum mehrere Tabellen auf einmal zu exportieren. Wenn die Tabellen in einer gemeinsamen Datenbank vorliegen ist das der einfachste Fall. Hier können Sie auf der READ Seite diese Tabelle über SQL Joins miteinander kombinieren und auf einmal exportieren.

z.B. select * from tabelle1 inner join tabelle2 on tabelle1.id = tabelle2.id

Dann stehen weitere Möglichkeiten zur Verfügung um z.B. Ihre Daten aus ein, oder auch mehreren, CSV Daten anzureichern. Hier können Sie den String Replace Heater verwenden um einen CSV Daten Lookup zu implementieren. Ein Beispiel finden Sie hier: CSV Daten Lookup

Weiter allerdings etwas komplizierter wird es wenn die Daten in mehrere unterschiedlichen Datenbanken vorhanden sind. Hier müsste der Umweg über eine separate Datenbank gewählt werden. Der FlowHeater bietet hier über den SQlite Adapter die Möglichkeit während der Verarbeitung eine temporäre Datenbank anzulegen hier werden die Daten mittels mehrere Definitionen gesammelt und am Schluss über eine Finale Definition in das gewünschte Format ( CSV , XLS , ...) exportiert.

Wenn Sie mir etwas mehr Informationen geben, was Sie genau vorhaben, erstelle ich Ihnen gerne ein kleines angepasstes Beispiel dazu.
Kategorie: Allgemein
05 Mär 2014 07:07
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Kor,

das können Sie mit einem CSV Listen Lookup über den String Replace Heater realisieren. Ein Beispiel wie es geht finden sie hier. CSV Listen Lookup

Das Wegschreiben von Zeilen die nicht vorhanden sind ist schon etwas schwieriger. Hierzu benötigen Sie einen .NET Script Heater und folgendes Skript. Im Anhang finden Sie ein Beispiel dazu.
bool bFirst = true;

public object DoWork()
{
  string filename = "nicht-in-csv-vorhanden.csv";  // Es gehen auch komplette Pfadangaben  

  if (InValues.Length < 2)
    throw new Exception("min. zwei Parameter erwartet!");	

  string sIN = (string)InValues[0].GetString();

  if (sIN == "NOT FOUND")
  {
    string sLine = String.Empty;

    // CSV Zeile aufbauen, es werden alle Eingangsparameter, außer dem ersten in die Datei geschrieben
    for(int i = 1; i < InValues.Length; i++)
    {
      if (sLine.Length != 0)
        sLine += ";"; // CSV Trennzeichen

      sLine += (string)InValues[i].GetString();
    }

    sLine += Environment.NewLine;

    if (bFirst && File.Exists(filename))
      File.Delete(filename);    
    
    File.AppendAllText(filename, sLine);
    
    bFirst = false;

    // aktuellen Satz filtern, da nicht in der CSV Datei vorhanden!
    return true; 
  }

  // aktuellen Satz nicht filtern
  return false;	
}


Das Skript prüft den Ausgang des CSV Listen Lookup vom Replace Heater und schreibt, falls der Wert nicht aufgelöst werden konnte dies in eine Separate CSV Datei „nicht-in-csv-vorhanden.csv“. Der betroffen Datensatz wird dann noch mittels des Filter Heater gefiltert .


Dateianhang:

Dateiname: csv-listen-lookup.zip
Dateigröße:2 KB
Kategorie: TextFile Adapter
31 - 45 von 62 Ergebnissen angezeigt.
Ladezeit der Seite: 1.542 Sekunden

andere Sprachen

en

FlowHeater Home

de en

Impressum/Kontakt

Datenschutz

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

Follow us on

twitter  facebook

YouTube

 de en