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
18 Jan 2021 17:24
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Bönnighausen,

genau dafür wurde der FlowHeater konzipiert. Ich habe Ihnen im Anhang mal ein kleines Beispiel erstellt. Hier wird davon ausgegangen, dass die Messwerte (IDs) in sortierter Reihenfolge vorliegen. Das Beispiel funktioniert so mit Ihren gelieferten Testdaten .

Das Beispiel verwendet zwei Verarbeitungsschritte. Der erste „Anzahl ermitteln“ ermittelt über den GroupBy Heater zusammen mit dem AutoID Heater lediglich für jeden Messwert die Anzahl und speichert diese in einer InMemory Tabelle „Anzahl“ zwischen. Die Anzahl wird dann im zweiten Verarbeitungsschritt „Verarbeitung“ benötigt um zu entscheiden ob eine Berechnung der „Messwert_ID_Group“ stattfinden soll oder nicht.
Zuerst muss natürlich erst einmal das Feld mit den Inhalten extrahiert werden. Hierzu wird der String Split Heater mit dem Trennzeichen „#“ verwendet.

Anmerkung: Wenn Ihre Eingangsdatei nur diese Werte enthält, könnten Sie im TextFile Adapter als CSV Trennzeichen auch „#“ angeben und Sie hätten die Felder gleich während des Einlesens getrennt!

Dann wird mit Hilfe des String Replace Heater ein Daten Lookup auf die im ersten Verarbeitungsschritt zwischengespeicherte InMemory Tabelle „Anzahl“ an Messwerten durchgeführt. Mit diesem Wert wird über die IF-THEN-ELSE Heater geprüft (Anzahl != 1) ob eine Berechnung bzw. eine Ausgabe für diesen Messwert/Zeile notwendig ist. Die notwendige Berechnung findet über zwei AutoID Heater statt. Hier wurde einmal eingestellt, dass über „gleiche Eingangsparameter“ sowie einmal über „Gruppenwechsel“ gezählt werden soll, siehe Screenshot.

Der String Format Heater wird dazu benötigt um die berechneten Werte sauber als Ganzzahlwert ohne Dezimalstellen zu Formatieren, das könnte auch über die allgemeinen Format Adapter Einstellungen geändert werden.

Es gibt mehrere Möglichkeiten, das umzusetzen. Probieren Sie es mal aus, gerne können wir noch Änderungen vornehmen.


Fertige Definition



AutoID Einstellung zu "Zählen" gleicher Eingangsparameter



AutoID EInstellung zu "Zählen" auf Gruppenwechsel



Dateianhang:

Dateiname: gruppierun...hlen.zip
Dateigröße:16 KB
Kategorie: Allgemein
21 Sep 2020 16:30
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Fajkus,

auf der WRITE Seite geht das leider nicht direkt.

Sie können aber über den SQL Heater (oder auch Lookup Heater ) einen Datenbank Lookup durchführen und dann mittels des Rückgabewertes und dem Filter Heater die nicht gewünschten Datensätze, vor der eigentlichen Verarbeitung, herausfiltern.

Ich habe Ihnen im Anhang ein kleines Beispiel angefügt. Hier wird zuerst über den Parameter Heater ein FlowHeater Parameter $ID$ mit dem aktuellen Feldinhalt der READ Seite ( CSV Datei ) gesetzt. Dieser Paramater wird dann im SQL Heater verwendet um die Abfrage mit WHERE Bedingung auf der WRITE Abzusetzen. Der Rückgabewert wird dann in einer IF-THEN-ELSE Bedingung geprüft und falls der Wert „1“ ist wird der Datensatz dann durch den Filter Heater aus der Verarbeitung ausgeschlossen.

Schauen Sie sich mal das Beispiel im Anhang an, ich denke damit sollten Sie zurechtkommen.



Dateianhang:

Dateiname: where-auf-write.zip
Dateigröße:7 KB
Kategorie: SqlServer Adapter
14 Feb 2020 06:18
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Berto,

Optimierungen gehen immer :-)

Hinweis: Die Verarbeitung läuft immer gleich ab. Es ist egal ob die Definition manuell über den Designer , per Skript über das Batch Modul oder aber komplett automatisiert über den FlowHeater Server ausgeführt wird!

Um eine genau Aussage bzgl. Optimierung treffen zu können, wäre natürlich eine tiefgreifende Analyse Ihrer Daten sowie Anforderung notwendig. Bitte haben Sie Verständnis dafür, dass das nicht Bestandteil des kostenlosen Supportes hier im Forum sein kann.

Aufgrund Ihrer beiden vorherigen Fragen hier
  1. Fehlermeldung bei identischen Schlüssel 
  2. FH Designer: Fehlermeldung Range-Objekt 
hätte ich eine Anmerkung)

Einmal wird das Problem sein, dass Sie in der InMemory Adapter Tabelle keinen eindeutigen Schlüssel definiert haben. Das bremst die Verarbeitung enorm aus! Hier würde ich mal beim Einlesen der Daten einen eindeutigen Schlüssel (über AutoID oder aber eine GUID ) definieren anhand der dann die Updates ausgeführt werden. Die AGS Nummer holen Sie sich dann per SQL Heater oder String Replace Heater aus der Referenztabelle. Beim Einlesen der Referenztabelle wäre es auch Hilfreich wenn hier doppelte Werte per Filter Heater gefiltert werden würden, die werden ja eh wieder überschrieben! So können Sie darüber auch einen eindeutigen Index erstellen und die Verarbeitung sollte deutliche beschleunigt werden. Ich würde sagen die Verarbeitungszeit wird so mindestens halbiert, wenn nicht noch mehr!

Vorgehen kurz zusammengefasst
  1. Einlesen der  CSV Referenztabelle in eine InMemory Tabelle und filtern per Filter Heater auf doppelte Werte. Eindeutigen Schlüssel anlegen über PLZ+Strasse+Hausnummer

  2. Einlesen der CSV  Kunden die abgeglichen werden sollen in eine weitere InMemory Tabelle und hier ein weiteres Feld mit einer  AutoID oder aber besser einer GUID anlegen. Weiter keine Verarbeitung in diesem Verarbeitungsschritt.

  3. Dann lesen der Kundendaten über die InMemory Tabelle und updaten in die gleiche InMemory Tabelle. PK ist das neue Feld ( AutoID oder aber GUID ). In diesen Verarbeitungsschritt ermitteln Sie mittels des SQL Heater  oder String Replace Heater per Lookup die AGS Nummer (ggf. auch weitere Felder) aus der im ersten Verarbeitungsschritt eingelesene Referenztabelle.
Kategorie: Allgemein
10 Jan 2020 12:46
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Küffer,

Sie müssen schon etwas genauer beschreiben was Sie durchführen möchten, was Sie erwarten oder aber was nicht funktioniert. So kann ich jetzt nur vermuten was Sie durchführen möchten!

Ich nehme an Sie möchten Werte aus der im ersten Verarbeitungsschritt eingelesene CSV Datei über die InMemory Tabelle ersetzen lassen?
Hierzu benötigt der String Replace Heater natürlich ein Schlüsselfeld anhand dessen dann der Daten Lookup ausgeführt werden kann.

Bei Ihrem Beispiel war hier die Spalte „Text_Deutsch“ mit dem String Replace Heater verbunden. Dieses Feld ist in der in diesem Verarbeitungsschritt gelesenen CSV Datei aber immer Leer, deswegen kann hier auch keine Werteersetzung durchgeführt werden Wenn Sie wie im beigefügten Screenshot hier die erste Spalte verwenden werden Werte ersetzt. Ob das jetzt richtig ist kann ich aufgrund der fehlenden Beschreibung nicht beurteilen.

Kategorie: InMemory Adapter
08 Mär 2019 15:34
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Nick,

im Prinzip geht es so wie in folgenden Beispiel beschreiben:  CSV und Excel Daten über SQLite Datenbank zusammenführen

Tipp: Ganz unten finden Sie ein ausführliches Tutorial Video.

Ich habe mal exemplarisch für ein Update über mehrere Felder ein kurzes Bespiel für den InMemory Adapter beigefügt.

Vorgehensweise
  1. Datei input2.txt in die InMemory Tabelle einlesen
  2. Datei input1.txt einlesen und den Preis in der InMemory Tabelle aktualisieren. Achtung: Adapter auf nur Update stellen und mehrere Felder als Schlüsselfeld für Updates konfigurieren!
  3. Ausgabe der InMemory Tabelle
Wenn die Daten in einer SQL Datenbank stehen würde es alternativ auch über den SQL Heater oder Lookup Heater und einem Datenlookup funktionieren.

Dateianhang:

Dateiname: daten-anreichern.zip
Dateigröße:3 KB
Kategorie: InMemory Adapter
03 Feb 2019 10:54
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Niklas,

hier das versprochen Beispiel. Im Beispiel wird allerdings eine CSV Datei  verwendet um den Excel SVERWEIS abzubilden. Das kann aber 1:1 auch mit dem Excel Adapter  abgebildet werden.

Im Beispiel wurden drei Varianten ( SQL Heater , Lookup Heater  und String Replace Heater ) verwendet wie ein Excel SVERWEIS im FlowHeater und dem neuen InMemory Adapter  Tabellen abgebildet werden kann.

Die Fehlermeldung „Column ‚Person‘ is constrained to be unique. Value 10421is already present”. Können Sie auf zwei Arten eliminieren. Einmal indem Sie den Schlüssel nicht als “Unique” kennzeichnen, so können doppelte Schlüsselfelder in der Tabelle vorkommen. Oder aber auf dem Reiter „Allgemein“ die Option „Vorhandene Datensätze ignorieren“ aktivieren. So werden bereits vorhandene Datensätze nicht nochmal an die Tabelle angefügt. 

PS: Die Version 4.1.4  wurden nun offiziell Released. Jetzt steht auch die Dokumentation zum InMemory Adapter zur Verfügung.

Dateianhang:

Dateiname: excel-sverweis.zip
Dateigröße:3 KB






PSS: Die Analyse mit der geöffneten Excel Datei dauert noch an!
Kategorie: Excel Adapter
10 Dez 2018 06:17
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Rösler,

ich habe die Definition ein wenig angepasst. Einmal unterstützt nun die neu Beta 4.1.3.2 Beta7 das gleichzeitige lesen und schreiben von der gleichen InMemory Tabelle. Hier wird nun im zweiten Schritt nicht mehr von der CSV Datei gelesen, sondern direkt von der bereits eingelesenen InMemory Tabelle.

Die Artikelnummer für die Transportkosten wird ebenfalls im zweiten Schritt über einen CSV Lookup mittels des String Replace Heater realisiert, siehe Screenshot. Hier wird im Prinzip nach dem ersten Wert in der Liste gesucht und falls gefunden der zweite Wert verwendet. Falls kein passender Wert gefunden wird, wird der definierte Standardwert zurückgegeben.

Zum Schluss wurde im letzten Verarbeitungsschritt der Filter entfernt, so dass auch die Summenzeile ausgegeben wird wenn die Kundennummer nur einmal vorkommt.



Dateianhang:

Dateiname: summenzeilen-2.zip
Dateigröße:4 KB
Kategorie: Allgemein
01 Dez 2018 11:06
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Herrmannsfeldt,

für eine bedingte Ersetzung benötigen Sie eine Kombinationaus einem CSV Lookup über den String Replace Hearer und dem IF-THEN-Else Heater für die Bedingung. Im Anhang finden Sie ein kleines Beispiel dazu. Das Bespiel verwendet den zweimal den Textfile Adapter , funktioniert so aber auch zusammen mit dem MySQL Adapter .

Für den CSV Lookup müssen Sie den String Replace Heater sokonfigurieren wie im Screenshot. In der CSV Liste tragen Sie die Artikelnummern
nach dem Schema Artiklennummer;Menge ein die Sie ersetzen möchten. Hinweis: Das können auch sehr viele sein!

Wichtig ist, dass Sie für den Standardwert falls nichtgefunden einen Wert angeben der nicht als Artikelnummer vorhanden ist, im Beispiel wird „!Nicht gefunden!“ verwendet. Auf diesen Wert wird dann im IF-THEN-ELSE Heater geprüft.Hierüber wird dann entschieden welcher Wert in das MySQL Feld dann eingetragen wird. Entweder das Feld aus der CSV Ersetzungsliste oder aber der Original Feldinhalt aus der MySQL Tabelle.

CSV Lookup Konfiguration


Dateianhang:

Dateiname: bedingte-e...zung.zip
Dateigröße:2 KB
Kategorie: MySQL Adapter
17 Nov 2018 14:23
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Rindt,

nach erneuter Prüfung ist das eigentlich kein Fehler, das generieret XML Dokument wäre so genauso valide bzw. stimmig. Das Problem hier ist, dass anscheinend die Anwendung, die das XML einlesen möchte, hiermit nicht richtig umgehen kann. Das Problem wurde aber trotzdem in der aktuellen Beta behoben :-)

Im „schemaLocation“ Attribut können mehrere vorhandene (Namespace) Elemente aufgelistet werden (=Namespace neutral), deshalb wurde von der verwendeten Funktion (XML Bibliothek) das Namespace Präfix für dieses Attribut standardmäßig entfernt. In der aktuellen Beta wurde das korrigiert bzw. geändert. Über untenstehende Links können Sie sich die Beta Version herunterladen.

Folgende Änderungen sind hier vorhanden.
1.    Neuer InMemory Adapter
2.    SQL , Lookup , und String Replace Heater mit Unterstützung für InMemory Adapter Tabellen.
3.     If-Then-Else Heater mit Zeichenkettenvergleich ohne Leerzeichen am Anfang/Ende
4.    BugFix: GroupBy Heater in Verbindung mit Filter Heater.

Zum InMemory Adapter) Der ist ein absolutes Highlight! Hiermit können beliebige Tabellendaten (CSV, Excel, SQL, …) in Hauptspeichertabellen eingelesen werden. Diese Tabellen können im Hauptspeicher weiter angereichert bzw. abgefragt werden und zum Schluss können diese Tabelle natürlich auch wieder in physikalische Dateien bzw. Datenbanktabellen ausgegeben werden. Das Ganze ist, da Hauptspeicher basierend, rasend schnell. Hier finden Sie ein Beispiel dazu wo der klassische CSV Lookup über den  String Replace Heater auf InMemory Tabellen umgestellt wurde.

 Beispiel: Datanorm - Zeilen zusammenfassen


Beta Version Download
FlowHeater Beta 32 Bit
FlowHeater Beta 64 Bit
FlowHeater Server Beta
Kategorie: XML Adapter
31 Okt 2018 15:12
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Seifert,

in Ihrem ersten Screenshot (siehe Anlage) sehe ich, dass hier nur ein Langtext für einen Artikel vorhanden ist, bitte prüfen Sie das mal, Danke.

Für eine weitere Analyse bräuchte ich bitte mal die erstellte Defintion und ein paar Beispieldaten.

Kategorie: TextFile Adapter
31 Okt 2018 06:03
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Seiffert,

in der CSV Replace/Lookup Datei müssen natürlich zu ALLEN Artikeln die Langtexte vorhanden sein. Nach Ihrem Screenshot zu Urteilen ist da nur der Langtext von ArtikelNr. 0121256?

Die angezeigten Zeilenumbrüche im Langtext werden nur durch den automatischen Umbruch angezeigt und sind nicht physikalisch vorhanden, oder? Wenn ja müsste der Prozess etwas umgebaut werden, das der CSV Lookup nur jeweils eine Zeile interpretieren kann! Bitte hierfür eine neue Frage hier im Forum posten, Danke.
Kategorie: TextFile Adapter
29 Okt 2018 06:12
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Seiffert,

das können Sie über einen weiteren String Append Heater , der zuerst die 2 Spalten der Zeile zusammenfasst. Der zweite String Append Heater fasst dann die Werte der gruppierten Zeilen zusammen, siehe Beispiel im Anhang.



Dateianhang:

Dateiname: csv-lookup...0-29.zip
Dateigröße:2 KB
Kategorie: TextFile Adapter
26 Okt 2018 05:24
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Seiffert,

Sie müssen die CSV Lookup Datei bereits so erzeugen, dass hier die zusammengefasst werden. Das können Sie über den GroupBy Heater zusammen mit dem String Append Heater durchführen. Im Anhang finden Sie ein kleines Beispiel dazu.

Hinweis: Die Datenquelle muss dazu sortiert sein! Evtl. vorher mit dem Sort Heater sortieren.

Dateianhang:

Dateiname: csv-lookup...ssen.zip
Dateigröße:2 KB
Kategorie: TextFile Adapter
22 Okt 2018 16:37
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Seiffert,

Sie benötigen dafür einen weiteren Verarbeitungsschritt. Das Problem ist, die Verarbeitung im FlowHeater geht Satzweise/Zeilenweise. Sie können nicht direkt während der Verarbeitung von Zeile 1 bereits Daten von Zeile 2 lesen, die sind da noch nicht um Zugriff.

So geht´s aber)
Fügen Sie Ihrer Definition einen weiteren Verarbeitungsschritt hinzu (siehe Screenshot) und schieben den an den Anfang der Verarbeitungskette. In diesem Step verarbeiten Sie nur die Sätze mit „B“, also alles andere Filtern. Auf der WRITE Seite erzeugen Sie eine einfache CSV Datei mit 2 Spalten, einmal die Artikelnummer und zum anderen den EAN Code. Die Datei benennen Sie z.B. replace.csv. Die verwenden Sie im zweiten Step zusammen mit dem String Replace Heater . In dem Step verarbeiten Sie nur Sätze mit „A“. Über den String Replace Heater und einem CSV Lookup mit der gerade erzeugten Datei können Sie nun anhand der Artikelnummer den EAN Code in die jeweilige Zeile holen.

Beispiele zum CSV Lookup finden Sie hier:


PS: Ausblick auf die nächste Version. Hier wird es möglich sein das ganz ohne eine Zwischendatei zu fahren, die Daten können hier in einer temporären Hauptspeicher Tabelle für die Verarbeitung vorgehalten werden.
Kategorie: TextFile Adapter
29 Nov 2017 20:51
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Klaschewski,

CSV Kopf/Fußzeilen können über FlowHeater Parameter geschrieben werden, das geht auch dynamisch. Hier finden Sie ein etwas ausführlicheres Beispiel dazu: Verarbeitung von CSV Kopf- und Fußzeilen

Die Daten aus dem „Kundendaten“ Excel sollten relativ leicht zu übernehmen sein. Schwierig wird es jetzt bei Ihrem Vorhaben die Satzarten ebenfalls zu verwenden!

Wenn überhaupt könnte es über zwei vorher auszuführende Definitionen gehen, wo diese Werte in separate Textdateien exportiert werden um dann über einen CSV Lookup bei der eigentlichen Generierung der Ausgabe Textdatei wieder einfließen zu lassen.

Das setzt aber voraus, dass die Satzarten im Excel immer an der gleichen Stelle oder aber wenigsten in einem bestimmten Bereich zu finden sind? Das sieht auf Ihrem PDF leider nicht so aus. Können Sie bitte etwas genauer beschreiben wo die genau die Satzarten auf dem Excel zu finden sind, anschließend kann ich Ihnen hierfür ein kleines Beispiel erstellen.
Kategorie: Excel Adapter
1 - 15 von 62 Ergebnissen angezeigt.
Ladezeit der Seite: 1.280 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