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
08 Sep 2017 05:37
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Jakob,

das ist das was noch nicht geht, das der FlowHeater nicht dynamisch liest sondern das was im XML Adapter definiert wurde. In Ihrem Fall müssen das hier beschrieben vorgehen wählen. Also zuerst die XML Header/Kopf Informationen lesen und in eine CSV Datei zwischenspeichern und anschließend die Positionen verarbeiten und ggf. diese mit den CSV Daten anreichen, z.b. CSV Lookup
Kategorie: XML Adapter
12 Jul 2017 05:45
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Wilhelm,

ich vermute jetzt mal der Zeitstempel soll bei Import und Update jeweils in ein anderes Feld geschrieben werden?

Der einfachste Weg das zu tun wäre es über zwei separate FlowHeater Definitionen auszuführen, so führt der FlowHeater die benötigten Prüfungen automatisch durch.

Zuerst führen Sie die nur UPDATE Definition aus. Hier müssen Sie im SQLServer Adapter lediglich die Option „Daten aktualisieren (Update)“ aktivieren. So prüft der SQLServer Adapter anhand des angegebene Primary Keys ob der betroffene Datensatz existiert und führt nur in diesem Fall ein UPDATE aus.

Anschließend führen Sie die nur INSERT Definition aus. Hier müssen Sie die Optionen „Daten anfügen (Insert)“ und „Vorhandene Datensätze ignorieren“ aktivieren. So prüft der SQLServer Adapter anhand des angegeben Primary Key ob der anliegende Datensatz schon existiert und führt nur einen INSERT aus falls nicht.

Hinweis: Über das Batch Modul können die beiden Definitionen automatisert nacheinander ausgehführt werden!

Der etwas schwierigere Weg ist über eine Definition. Hier müssen Sie in der Definition selbst prüfen ob der gerade anliegende CSV Satz in der Datenbank bereits vorhanden ist. Die Prüfung können Sie über den Lookup Heater oder aber den SQL Heater durchführen. Falls Sie das benötigen bitte die Zeitstempel Felder sowie die/den Primary Key etwas genauer beschreiben dann kann ich Ihnen hierfür ein kleines Beispiel erstellen.
Kategorie: SqlServer Adapter
02 Jun 2017 05:26
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Fertac,

das geht leider nicht über einen Bearbeitungsschritt. Sie benötigen zwei String Replace Heater , die jeweils einen CSV Lookup auf zwei unterschiedliche CSV Dateien durchführt. Die CSV Listen müssen einmal aufsteigend und einmal absteigend sortiert sein. Das Ergebnis daraus können Sie über einen String Append Heater zusammenführen.
Kategorie: TextFile Adapter
07 Apr 2017 18:36
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Florian,

ich denke nicht, dass das ein Problem vom verwendeten String Replace Heater für den CSV Lookup ist. Im Anhang finden Sie ein Beispiel, wo die Arbeitsweise genau so funktioniert wie Sie es zuletzt beschrieben haben.

Nach Analyse Ihrer Definition denke ich es liegt am verwendeten IF-THEN-ELSE Heater für das Feld „PLZ_Flag“, siehe Screenshot.

Wenn Sie den IF-THEN-ELSE Heater mit nur einem Eingangsparameter verwenden haben Sie als Ausgang immer den Booleschen Wahrheitswert TRUE/WAHR oder FALSE/FALSCH.

z.B. ist im Feld eine 0 vorhanden erhalten Sie FALSCH, bei allen anderen Werten WAHR!

Diesen Wert verwenden Sie im .NET Script Heater um selbst irgendwelche SQL Statements zusammenzustellen.

Sie greifen den Wert im Skript über folgenden Zeile ab.

int PLZ_Flag = (int)InValues[0].GetInt();

und prüfen weiter unten im Skript auf 0, 1, 2 oder 3 und generieren dann unterschiedliche SQL Statements. Das Problem dabei ist, dass der so abgegriffene Wert nur 0 oder 1 haben kann! Ich denke es sollte reichen wenn Sie den betroffenen IF-THEN-ELSE Heater aus der Definition löschen und das Feld „PLZ_Flag“ direkt mit den anschließenden Heatern/Funktionen verbinden.



Dateianhang:

Dateiname: leere-eintraege.zip
Dateigröße:19 KB
Kategorie: Allgemein
12 Mär 2017 17:10
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Cedric,

das können Sie problemlos mit dem String Replace Heater und einem CSV Lookup abbilden. Sie müssen dazu die Option „Ganze Zeichenfolge vergleichen“ deaktivieren und „Komplett ersetzen“ aktivieren, siehe Screenshot.

Im Anhang finden Sie ein kleines Beispiel dazu.



Dateianhang:

Dateiname: csv-lookup...like.zip
Dateigröße:2 KB
Kategorie: Allgemein
10 Mär 2017 15:46
  • Cedric
  • Cedrics Avatar
Hallo zusammen,

wir haben ein ungewöhnliches Problem, da wir aus einer Artikelbeschreibung die Artikelnummer extrahieren müssen. Diese kann 4-6 Stellig sein und kann auch Buchstaben enthalten...

Wir hätten eine Liste mit den Artikelnummern die wir für einen CSV Lookup nutzen könnten, gibt es eventuell eine Möglichkeit einen Lookup zu machen mit "Enthält" anstatt von "Gleich"?

Also wenn die Beschreibung die Artikelnummer 1234 enthält er 1234 ausgibt?

Vielen Dank im voraus
Cedric
Kategorie: Allgemein
15 Feb 2017 19:39
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Mueck,

das einfachste wird es sein mittels des String Replace Heater einen CSV Lookup auf eine interne Liste durchzuführen die die auszuschließenden „Marken“ enthält.

Ein solcher CSV Lookup mit anschließender Filterung ist relativ einfach durchzuführen. Sie benötigen erstmal einen String Replace Heater. In den Einstellungen klicken Sie auf „Erweiterte Einstellungen“. Hier tragen Sie in der Liste die „Marken“ ein die nicht in Ihre Preisliste erscheinen soll. Für „Suchen“ und „Ersetzen“ Spalte tragen Sie jeweils die Spalte 1 ein. Das bedeutet nur, dass wenn ein Eintrag gefunden wurde dieser erstmal wieder zurückgegeben wird.

Jetzt müssen Sie noch die Optionen „Ganze Zeichenfolge vergleichen“, „Groß/Kleinschreibung ignorieren“ sowie „Komplett ersetzen“ aktivieren. Sobald Sie letzteres aktivieren können Sie daneben einen Standardwert angeben der zurückgegeben werden soll falls der Wert in der Liste nicht gefunden wurde. Hier tragen Sie den Wert „nicht gefunden“ (siehe Screenshot), dieser wird für die Filterbedingung benötigt.

Jetzt benötigen Sie noch einen IF-THEN-ELSE Heater in dem Sie auf „!=ungleich“ nicht gefunden abfragen und filtern diese Datensätze aus der Datenmengen heraus.
Im Anhang finden Sie ein kleines Beispiel.

PS: Anstatt der internen Liste können Sie für den CSV Lookup auch eine externe CSV Datei verwenden!



Dateianhang:

Dateiname: csv-lookup...2-15.zip
Dateigröße:2 KB
Kategorie: Oracle Adapter
15 Jan 2017 17:44
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Florian,

das Beispiel zur MySQL Datenmigration finden Sie hier: Daten nach MySQL migrieren

Ist leider noch nicht ganz fertig, es fehlen noch Formatierungen, Verlinkungen, Screenshot, etc., aber ich denke auf der Basis können wir hier weitermachen.

Im Anhang finden Sie ein paar Beispiel Definitionen die ich dafür verwendet habe. In Ihrem Fall würde der im Beispiel beschriebene CSV Lookup reichen, allerdings müssen Sie für Ihren konkreten Fall den Schlüssel um die Tabelle erweitern (s. Beispiel import-kunden-III.fhd). Hier reicht es nicht aus lediglich die „Alte“ ID in der ersten CSV Spalte zu sondern Sie benötigen zusätzlich noch die Tabelle von der der ursprüngliche Wert stammt.

Um die Beispiele verwenden zu können benötigen Sie die aktuelle Beta Version von hier. Hier wurde die Möglichkeit geschaffen den Auto Inkrement Wert auch im TextFile Adapter abzufragen.

FlowHeater Beta 32 Bit
FlowHeater Beta 64 Bit
FlowHeater Server Beta

Dateianhang:

Dateiname: mysql-migration.zip
Dateigröße:14 KB
Kategorie: Allgemein
15 Nov 2016 06:50
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Friedrich,

Sie können im IF-THEN-ELSE Heate r auch mehrere Kriterien einfügen (s. Screenshot).



Allerdings wird das bei vielen einzelnen Artikelnummern eine Fleißarbeit werden. So eine Prüfung macht nur Sinn wenn Sie über einen Artikelnummernkreis einschränken können. z.B alle Artikel größer 1000 und kleiner 9999

Besser und wesentlich einfacher zu lösen wäre dann der Ansatz über den oben beschrieben CSV Lookup Ansatz. Ich habe Ihnen dazu im Anhang ein kleines Beispiel erstellt. Hier wird über eine weitere CSV Datei mittels des String Append Heater geprüft ob der Artikel importiert oder gefiltert werden soll.

Schauen Sie sich das Beispiel mal, gerne können wir das noch auf Ihre Bedürfnisse weiter anpassen.

Dateianhang:

Dateiname: csv-lookup-filter.zip
Dateigröße:2 KB
Kategorie: TextFile Adapter
08 Nov 2016 11:20
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Friedrich,

ich denke das wäre möglich bin mir aber nicht ganz sicher ob ich Sie richtig verstanden habe. Sie können z.B. mit dem SQL Heater in der Datenbank prüfen ob eine Artikel ID bereits vorhanden ist oder nicht. Falls der Artikel nicht vorhanden ist wird der Datensatz in der CSV Datei einfach übersprungen bzw. gefiltert.

Hierzu benötigen Sie einmal einen Set Parameter Heater mit dem Sie die Artikel Nummer in einem FlowHeater Parameter zwischenspeichern. Dann einen SQL Heater der mittels des gesetzten Parameters prüft ob die Artikel Nummer aus der CSV Datei in der Datenbank bereits vorhanden ist. Sie benötigen dazu folgenden SQL Select
Select count(*) from t_Artikel where ArtikleNr = ‚$PARAMETER-NAME$‘

Hiermit holen Sie sich einen Zähler der angibt wie die Artikel Nummer in der Datenbank bereits existiert. Wenn der SQL Heater der Wert 0 liefert müssen Sie den Datensatz über den Filter Heater aus der CSV Menge herausfiltern. Für die Filterbedingung benötigen Sie noch einen IF-THEN-ELSE Heater .

Im Anhang finden Sie ein kleines Beispiel dazu.

Dateianhang:

Dateiname: csv-dynami...tern.zip
Dateigröße:2 KB


PS: Alternativ würde die Prüfung auch über eine weiter Textdatei und einem CSV Lookup über den String Replace Heater funktionieren.
Kategorie: TextFile Adapter
10 Okt 2016 06:06
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Birk,

Vielen Dank für den Hinweis bzgl. der Beta Version, die Links wurden korrigiert.

Das Problem ist der Sort Heater , der wird vor allen anderen aufgerufen und somit kann der Parameter für den CSV Lookup nicht initialisiert werden. Die einzige Möglichkeit den Parameter vor der Ausführung zu setzen ist über einen .NET Script Heater , der vor bzw. zwischen der Verbindung die zum String Replace Heater geht vorhanden ist. Unten habe ich Ihnen mal ein Skript dazu bereitgestellt. Das Skript setzt den Parameter und gibt den ersten Eingangsparameter zur weiteren Verarbeitung einfach wieder zurück. Sie müssen lediglich den Code Anpassen der den Wert des Parameters darstellen soll.

Hinweis: Es würde auch funktionieren den Parameter bei der Ausführung des Batch Moduls (FHBatch.exe) als Kommandozeilenparameter mit zu übergeben.

Zu Ihrer Definition) Ich frage mich warum Sie für einen Sort einen CSV Lookup über den String Replace Heater durchführen möchten? Reicht es nicht aus einfach über den Parameter zu sortieren ? Wenn Sie das gleich Konstrukt auch auf dem „Default Layer“ verwenden um den Wert dem Feld zuzuweisen sollten Sie die Verbindung dieses Feldes auf den „Sort“ Layer legen. Verbinden Sie hier einfach den Ausgang des String Format Heater mit dem gewünschten Feld auf der Write Seite.

C# Skript um den Parameter zu setzen
public object DoWork()
{
  // hier den Code um den Parameter zu setzen.
  // zurgiff auf TextFileAdapter
  TextFileAdapter adapter = (TextFileAdapter)AdapterRead;

  // Parameter setzen, hier wird der aktuelle Dateiname der READ Seite verwendet
  Parameter["VersTitle"].Value = Path.GetFileName(adapter.Filename);

  // ersten Eingangsparameter zurückliefern, keine Änderung daran vornehmen!
  return InValues[0];
}
Kategorie: TextFile Adapter
08 Okt 2016 15:45
  • Ralf Birk
  • Ralf Birks Avatar
Hallo Herr Stark,

vielen Dank für Ihre rasche Antwort.
Ihr Link geht zur normalen anstatt der Beta Version. Ich habe diese über die mir bekannte Adresse heruntergeladen.
Leider gehr es mit der Variablen immer noch nicht (Siehe angehängtes Bild).
Zur Geschwindigkeit ist zu sagen, das auser ein wenig sortieren sonst nichts gemacht wird (sehen Sie auch auf dem Screenshot).

Meine Alternative Lösungssuche über SQlite haben Sie vermutlich missverstanden. Mit dem Anreichern den Dateinamens ist dis sicherlich nicht zu Lösen.
Im ersten Flow zähle ich die Datensätze, die eine gleiche Nummer haben. Im 2. Flow (Sceenshot) muss ich die Daten in der Reihenfolge 1.Palettennr., 2. Bundnr, 3 Sendungsnr. umsortieren. Bundnummer wird mit dem Lookup mit der Anzahl im Bund ersetzt, da die kleinen Bunde unten auf einer Palette sitzen müssen. Wenn jetzt z.B. Bund 1 20 Datensätze beinhaltet, kommt die 1 in der SQlite 20 mal und der Lookup-Csv 1 mal vor. Hier kommt dann immer der Indexfehler.

Gruß

Ralf B.
Kategorie: TextFile Adapter
08 Okt 2016 13:07
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Birk,

über folgende Links können Sie sich eine BETA Version herunterladen. Hier wurde der String Replace Heater so angepasst, dass für die CSV Lookup Datei auch FlowHeater Parameter verwendet werden können.

FlowHeater Beta 32 Bit
FlowHeater Beta 64 Bit

Zu Ihrem Problem) Wenn ich hier eine CSV Datei mit 100.000 Zeilen sowie eine CSV Lookup Datei ebenfalls mit 100.000 verarbeite, dauert das bei mir auf einem relativ langsamen Rechner ca. 5 Minuten. Liegt Ihre CSV Datei evtl. auf einer Netzwerkressource, oder greifen Sie mehrmals, mit mehreren String Replace Heatern auf die CSV Lookup Datei zu?

Damit Sie ein eindeutiges Kriterium für eine Lösung über SQLite bekommen, können Sie z.B. auch den Dateinamen der gerade verwendeten CSV Datei in einer Spalte mitverwenden, so wie Sie es auch für die CSV Lookup Datei tun.

Hinweis: Um den Dateinamen zu erhalten ist kein .NET Script Heater mehr notwendig, dazu können Sie seit längerem den System Heater verwenden.
Kategorie: TextFile Adapter
20 Aug 2016 11:45
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo fertac,

Vielen Dank für die Anregung bzw. den Hinweis. Da haben Sie natürlich vollkommen Recht :-) Über u.s. Links können Sie sich eine angepasste Beta Version herunterladen die bis zu 9999 Spalten für den CSV Lookup unterstützt.

FlowHeater Beta 32 Bit
FlowHeater Beta 64 Bit
Kategorie: Anregungen
28 Jun 2016 09:15
  • Peter Elsner
  • Peter Elsners Avatar
Hallo Herr Stark,

vielen Dank für die Hilfe. Die Lookup Variante hat ausgereicht.

Gruß
Peter Elsner
Kategorie: TextFile Adapter
16 - 30 von 62 Ergebnissen angezeigt.
Ladezeit der Seite: 1.027 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