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
06 Feb 2014 19:54
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Anstötz,

leider kann ich mir nicht vorstellen was Sie mit dem Skript vorhaben, eine Berechnung findet hier jedenfalls nicht statt.

Um Ihr Problem zu lösen benötigen Sie kein .NET Skript. Es ist völlig ausreichende die Werte, wofür Steuer berechnet werden soll, inkl. Steuersatz in einen Liste vom String Replace Heater (Erweiterte Einstellungen) eintragen.

z.B.
0815;1,1597
1111;1,5
etc.

Für Werte die nicht gefunden werden müssen Sie als Default Wert 1 zurückgeben lassen, damit hierfür dann keine Berechnung stattfindet. Die Ausgabe verbinden Sie mit einem Multiplikation Heater und Berechnen hiermit den Steuerbetrag mit dem Feld das den Betrag enthält. Das War´s, im Anhang finden Sie ein kleines Beispiel.





Dateianhang:

Dateiname: export-mit...nung.zip
Dateigröße:2 KB
Kategorie: Allgemein
25 Jun 2013 18:43
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Tim,

Version 3.x)

Ich arbeite mit der V2.5...des FH und lese soeben das eine neue Version das lesen mehrerer eingehender Dateien unterstützt, Nun macht sich bei mir gerade Unmutbreit, denn wie ich lese, müsste ich in eine neue Vollversion investieren um die die von mir meistgenutzte Funktionalität nutzen zu können.

Die neue Version unterstützt z.Zt. mehrere Adapter nur auf der WRITE Seite. Für die READ Seite ist das für Version 3.x in Planung. Im Herbst 2013 wird hier mit einer ersten Version zu rechnen sein. Ich finde schon alleine die Antwort auf Ihre Frage wäre das Update Wert :)

Matchen von Werten) Dazu müssen Sie nicht einen .NET Script Heater verwenden. Über den String Replace Heater können Sie problemlos eine Listenverarbeitung durchführen. Mit den Einstellungen (s. Screenshot) können Sie über einen nachfolgenden IF-THEN-ELSE Heater auf gleich oder ungleich „NOT FOUND“ prüfen und sie können matchen ob ein Eintrag in einer weitere CSV Datei vorhanden ist.

Ihre eigentliche Frage) Für Ihr Vorhaben würde ich die CSV Dateien nacheinander in eine temporäre Datenbank schrieben und anschließend über eine weitere Definition wieder exportieren. Mittels des SQLite Adapters benötigen Sie hier nicht einmal eine Datenbank bzw. ein Frontend dazu. Der SQLite Adapter kann die Datenbank sowie die Tabelle(n) dynamisch anlegen sowie erweitern. Ein Beispiel wie es geht finden Sie hier: CSV Daten mergen geht auch mit Version 2.5


Das mit Ihrer dritten CSV Datei habe ich nicht ganz verstanden? Wie sollen die Daten ausgegeben werden, in eine Zeile oder alle Daten der ersten und zweiten CSV Datei wiederholt zu jedem passenden Datensatz?

Kategorie: TextFile Adapter
04 Jun 2013 06:26
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Hollenbach,

eine Möglichkeit besteht darin beide Textdateien nacheinander in eine separate Datenbank zu laden und anschließend das Ergebnis zu exportieren. Das klingt jetzt schwieriger als es ist, der FlowHeater bringt dazu alles mit. Ein Beispiel wie es generell geht finden Sie hier: CSV und Excel Daten zusammenführen

Etwas einfacher würde es über eine CSV Ersetzungsdatei funktionieren. Hier wandeln Sie eine Textdatei(die kleinere) in eine CSV Datei um und verwenden diese im Replace Heater für einen CSV Lookup und holen anhand des Keys die Daten heraus. Ein Beispiel wie das geht finden Sie hier: CSV Lookup
Kategorie: Allgemein
24 Dez 2012 12:19
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Kraus,

dann ist die Lösung über den SQL Heater nicht brauchbar, da hier der Bezug zu einem eindeutigen Datensatz fehlt.

Wenn Ihre SQL Tabelle einen Primary Key hat (z.B. AutoIncrement) hat können Sie folgendermaßen vorgehen.
Verwenden Sie den benötigten Datenbank Adapter auf der READ sowie auf der WRITE Seite. Geben Sie auf der READ Seite die gleiche Tabelle wie auf der WRITE Seite an. Lesen Sie die Felder ein und verbinden Sie die Primary Key Felder der READ mit der WRITE Seite.

Dann benötigen Sie noch einen String Replace Heater mit dem Sie den Prozentsatz aus einer CSV Textdatei, ähnlich wie mit dem SQL Heater, einlesen können. Die Berechnung ist dann die gleiche wie im vorherigen Beispiel
Sie schreiben, dass die Prozentwerte in einer Excel Datei vorliegen. Diese müssten Sie vorher mit Hilfe einer weiteren Definition in eine CSV Datei umwandeln.

In der Anlage ist dazu wieder ein kleines Beispiel. Im Beispiel werden zusätzlich nicht vorhandene Preiserhöhungen gefiltert.
Ein weiteres Beispiel zum String Replace Heater finden Sie hier CSV Lookup

Hinweis: Damit dieses Beispiel funktioniert müssen Sie auf der WRITE Seite Datenbanktransaktionen deaktivieren, s.Bild.



Anhang update_preise_berechnung2.zip wurde nicht gefunden.

Kategorie: Excel Adapter
20 Dez 2012 20:30
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Kraus,

um mit dem alten Preis in der Definition rechnen zu können müssen Sie diesen mittels des SQL Heaters aus der Tabelle lesen (Datenbank Lookup). Damit nur Updates auf der WRITE Seite generiert werden deaktivieren Sie die Option "Daten anfügen (Insert)" und aktivieren dafür die Option "Daten aktualisieren (update)" im Configurator auf der WRITE Seite.
Ziehen Sie nun einen SQL Heater auf den Designer und tragen Sie für das SQL Statement folgendes ein.

select Preis from Ihr-Tabellenname where ArtikelNr = '$ArtNr$'

Hinweis: Falls die Artikelnummer als Zahlenwert (INT, LONG, DECIMAL, ...) im SQL Server gespeichert dürfen Sie die Artikelnummer nicht in Hochkommas einschließen und ggf. über Menü->Bearbeiten->Parameter die Zahlenformatierung auf ohne Tausendertrennzeichen und ggf. ohne Nachkommastellen einstellen.

Hiermit wird die Spalte Preis von der Tabelle "Ihr-Tabellenname" gelesen. Der Parameter $ArtNr$ wird mit dem aktuellen Wert des aktuellen Datensatzes der READ Seite ersetzt. Damit das Funktioniert benötigen Sie noch einen Set Parameter Heater mit dem die aktuelle Artikelnummer der READ Seite dem Parameter $ArtNr$ zugeordnet wird.

Mit dem so ermittelten Wert können Sie ihren Prozentsatz ausrechnen und den neu berechneten Wert der Spalte Preis zuordnen.

Im Anhang finden Sie ein kleines Beispiel dazu. Hier wird anstatt des Excel Adapters eine einfache CSV Datei gelesen sowie wird auf der WRITE Seite eine kleine Access Datenbank verwendet.

Anhang update_preise_berechnung.zip wurde nicht gefunden.

Kategorie: Excel Adapter
25 Jul 2012 16:29
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Christoph,

handelt es sich bei den Tabellen um Datenbanktabellen dann können Sie dazu den SQL-Heater verwenden. Hier geben Sie z.B. an

SELECT spalte2 from tabelle2 where spalte1 = $ID$

Den Parameter $ID$ müssen Sie in diesem Fall über den Parameter Heater mit der aktuellen ID der Tabelle1 befüllen.

Handelt es sich aber um 2 CSV Tabellen können Sie einen ähnlichen CSV Lookup über den String Replace Heater durchführen. Hier finden Sie ein Beispiel dazu: CSV Lookup mit Replace Heater
Kategorie: Allgemein
14 Jun 2012 06:35
  • Heinz-Bernd Monschau
  • Heinz-Bernd Monschaus Avatar
Hallo Marko,

eine Liste auf die Readseite des Adapters, die zweite über den Replace-Heater (wenn als csv u. ä. vorliegt), oder über den Lookup-heater ansteuern.

Evtl. die Frage genauer stellen. In welchem Format liegen die Listen vor, welche Attribute (Spalten) haben sie, welche Attribute werden verglichen, welches soll zurückgegeben werden?
Kategorie: TextFile Adapter
12 Apr 2012 19:01
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Elsner,

ich würde Ihnen vorschlagen das über eine CSV Ersetzungsdatei mit zusammengesetztem Suchkriterium zu lösen. Das ist wesentlich einfacher zu lösen und wird auch schneller ausgeführt. Ich gehe darauf hier nicht weiter ein, im Anhang befindet sich ein Beispiel (mehrere-csv-lookups-alternative.fhd) dazu.

Hier die Lösung wie Sie es eigentlich vorhaben)
Dazu benötigen Sie für jede CSV Ersetzungsdatei einen String Replace Heater sowie einen IF-THEN-ELSE Heater für die Bedingung, wann welche CSV Datei durchsucht werden soll.

Verbinden Sie das Feld WABE mit dem IF-THEN-ELSE Heater. Tragen Sie für die Bedingung "=10" im IF-THEN-ELSE Heater ein. Konfigurieren Sie den String Replace Heater für die CSV Ersetzungsdatei WABE=10 und Verbinden Sie den Ausgang des Replace Heater mit dem Eingang des IF-THEN-ELSE Heaters, dieser hat nun zwei Eingangsparameter! Einmal den Wert aus dem Feld WABE und den ersetzten Wert aus dem CSV Lookup. So verfahren Sie mit beliebig vielen CSV Ersetzungsdateien. Zum Schluß benötigen Sie noch einen String Append Heater . Verbinden Sie alle IF-THEN-ELSE Heater Ausgänge mit dem Eingang des String Append Heaters, den Ausgang verbinden Sie mit dem gewünschten Feld auf der WRITE Seite.

Der String Append Heater fügt alle lediglich alle Werte zusammen, da aber jeweils nur ein Wert von einer IF-THEN-ELSE Bedingung zurückgegeben wird steht in dem Feld auch nur ein Wert! Im Anhang befindet sich dazu ebenfalls ein Beispiel (mehrere-csv-lookups.fhd)

Anhang mehrere_csv_lookups.zip wurde nicht gefunden.

Kategorie: TextFile Adapter
11 Apr 2012 19:13
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Elsner,

ich vermute das ist ein Problem Ihrer CSV Ersetzungsdatei. Der String Replace Heater hat nur eingeschränkte CSV Fähigkeiten, hier werden CSV Feldbegrenzungen über Hochkommas nicht unterstützt! Ich habe das mal als neues Feature mit auf die Liste der weiteren Funktionen gestellt.

Sie können das Problem auf 2 Arten lösen.
  1. Sie bereiten die externe CSV Datei einmalig mittels einer weiteren FlowHeater Definition so auf das keine CSV Feldbegrenzungen mehr vorhanden sind.
  2. Wenn das nicht geht können Sie die Feldbegrenzungen auch vorher mittels des String Append Heaters zum Suchkriterium hinzufügen. Im Anhang befindet sich dazu ein kleines Beispiel.

Anhang csv_lookup.zip wurde nicht gefunden.

Kategorie: TextFile Adapter
27 Mär 2012 06:09
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Mehrere CSV Dateien in einer Definition können z.Zt. noch nicht verarbeitet werden.

Über den von Herrn Monschau beschriebenen Workaround, mittels einer CSV Liste im String Replace Heater , kann ein CSV Abgleich/Lookup realisiert werden womit Ihre Anforderung problemlos umgesetzt werden kann.
Kategorie: TextFile Adapter
30 Dez 2011 14:48
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Das liegt daran, da Sie diese Felder über den String Replace Heater befüllen und im Replace Heater angegeben ist, wenn der Wert in der CSV Liste nicht gefunden wird soll der Eingangsparameter zurückgegeben werden. Das Sie den CSV Lookup über die Artikelnummer machen ist das in diesem Fall korrekt.

Lösung)
  1. Die Felder direkt von der READ zur WRITE Seite verbinden. So ist es denke ich korrekt, s. Beispiel im Anhang.
  2. Sie geben im String Replace Heater einen anderen Default Wert als den Rückgabewert an der geliefert wird falls die Artikelnummer in der CSV Liste nicht gefunden wird. s. Screenshot



Anhang csv_abgleich-20111230.zip wurde nicht gefunden.

Kategorie: TextFile Adapter
30 Dez 2011 06:46
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
um einen CSV Abgleich bzw. einen CSV Export zu generieren der nur zum Vortag geänderte CSV Zeilen enthält müssen Sie den String Replace Heater mit einer externen CSV Liste füttern.

Hinweis: Sie benötigen für jeden Wert, den Sie vergleichen möchten einen separaten String Replace Heater!

Der Replace Heater erhält als Inputparameter die ArtikelNr. Dann wird der Replace Heater so konfiguriert, dass die Gesamte eingehende Zeichenkette verglichen wird, sowie dass der Wert komplett mit dem gefundenen ersetzt wird. So stellen Sie sicher, dass eine Artikelnummer 1 nicht auch in 11 gefunden wird! Als Rückgabewert müssen Sie die CSV Spalte der gestrigen Datei angeben die den VK bzw. Availbility enthält. Im Beispiel 1x Spalte 2 und 1x Spalte 3.

Somit haben wir eine Art Datenbank Lookup auf eine CSV Datei realisiert. Kommt jetzt eine Artikelnummer 12345 an sucht der Replace Heater die betroffene CSV Zeile mit der gleichen Artikelnummer in der gestrigen Datei und liefert die konfigurierte CSV Spalte zurück. Hier 1x den VK Preis sowie 1x Availbility.

Dann benötigen Sie für die Filterbedingung einen .NET Script Heater mit 4 Eingangsparametern
  1. VK aus dem ersten Replace Heater
  2. CSV VK Feld der READ Seite
  3. Availbility aus dem zweiten Replace Heater
  4. CSV Availbility Feld der READ Seite

Und folgenden Script.
public object DoWork()
{
  if (InValues.Length != 4)
    throw new Exception("4 Eingangsparameter erwartet");

  string sVK1 = (string)InValues[0].GetString();
  string sVK2 = (string)InValues[1].GetString();

  string sAV1 = (string)InValues[2].GetString();
  string sAV2 = (string)InValues[3].GetString();

  if (sVK1 != sVK2)
    return false;

  if (sAV1 != sAV2)
    return false;

  return true; // keine Änderung, CSV Zeile kann gefiltert werden
}

Das Skript prüft jetzt ob sich wenigstens ein Wertepaar voneinander unterscheidet. Wird kein unterschied festgestellt wird TRUE zurückgeliefert und der Filter Heater filtert diesen CSV Satz heraus.

So erzeugen Sie einen CSV Abgleich, der nur veränderte CSV Datensätze enthält.

PS: Die Replace Heater in Ihrer Definition die Sie verwenden um Punkt nach Komma zu ersetzen können Sie sich sparen! Wenn Sie die READ Seite so konfigurieren, dass das Zahlenformat Ihrer CSV Eingangsdatei entspricht, wandelt der FlowHeater diese Zahlen automatisch in den richtigen Wert um, siehe Beispiel im Anhang.



Anhang csv_abgleich.zip wurde nicht gefunden.

Kategorie: TextFile Adapter
17 Dez 2010 06:26
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Maul,

dazu benötigen Sie in diesem Beispiel zusätzlich einen .NET Script Heater und folgendes kleines C# Skript.
bool bFirst = true;

public object DoWork()
{
	// nur beim 1. Aufruf und nicht im Testmodus!
	if (bFirst && AdapterWrite.OnlyTest == false)
	{
		bFirst = false;
		
		// alle Datensätze mit L vorbelegen
		// hier die Tabelle uns das Feld anpassen
		AdapterWrite.Execute("update t_Vergleich1 set FeldP = 'L'");
	}

	// Eingangsparamter für die weitere Verarbeitung wieder zurück
	return InValues[0].GetValue();
}

Das Skript führt vor dem eigentlichen Import lediglich einen Update auf der Zieltabelle aus. Es werden alle Datensätze mit einem 'L' vorbelegt. Danach startet die Definition und aktualisiert diese Werte mit dem Inhalt 'A' falls der Datensatz gefunden wurde. Neue Datensätze werden beim Import dann mit einem 'N' hinzugefügt. In der CSV Datei nicht mehr vorhandene Datensätze haben somit den Wert 'L' durch das SQL Update Statement vom .NET Script Heater.

Um das Skript verwenden zu können. Müssen Sie das SQL Update Statement an Ihre Tabellen und Feldnamen anpassen (s. dazu auch den Kommentar im Skript).

PS: Die 2 Beispiele wurden im Anhang angepasst.

Anhang Lookup-20101217.zip wurde nicht gefunden.

Kategorie: Access Adapter
27 Sep 2010 06:33
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Leonhard,

das kann ich leider nicht nachvollziehen. Ich hab eben mit einer MySQL 5.1 Datenbank getestet. Ich kann beliebige Groß/Kleinschreibung der Feld bzw. Tabellennamen verwenden, es funktioniert immer :)
Es könnte allerdings sein, dass der verwendetet MySQL Treiber zusammen mit ihrer MySQL Server Version (3.x) hier etwas anders zu hanfhaben ist?

Was am Datenbank Lookup Heater geändert wurde ist, dass die Felder in der SQL WHERE Klausel anhand des FlowHeater Typs formatiert werden. Strings mit Hochkomma und Zahlen ohne Hochkommas!
z.B.

select Feld from Tabelle where key = 1
oder
select Feld From Tabelle where key = 'test'

Hier hätte ich nach Ihrer Beschreibung den Fehler vermuhtet. Wenn Ihr Feld RECORD_ID in der MySQL Datenbank als Integer/Zahl definiert ist und Sie den Datentyp von dem FELD der CSV Datei nach dem einlesen nicht auf INT umgesetzt haben würde der select nach dem 2. Beispiel gebildet werden. Manche Datenbanken werfen hier dann bereits einen Fehler. In diesem Fall brauchen Sie nur den Datentyp der CSV Textdatei im Textfile Adapter von STRING auf INT umsetzen und die SQL WHERE Klausel wird wieder korrekt gebildet.
Kategorie: MySQL Adapter
26 Sep 2010 17:51
  • Ingo Leonhard
  • Ingo Leonhards Avatar
Hallo Herr Stark,

der Zugriff mit dem Update von 0.6x auf 1.2.3. klappt jetzt über den Tunnel. Ein reverser Test, also lese MySql und schreibe CSV klappte einwandfrei.
ABER: Beim "richtigen Zugriff" taucht eine neue Fehlermeldung auf:

Lookup Error!

Ich muss dazu sagen, dass ich bislang nichts geändert habe, die Funktion ist noch genau die, die ich unter 0.6 eingesetzt habe. Ich erkläre hier, was der Lookup Heater machen soll. Vielleicht finden wir gemeinsam die Lösung?

1. Ich lese eine CSV-Datei ein.
2. Dann soll der LookUp Heater in der Tabelle Adressen der Datenbank des WAWI schauen, ob es schon einen Kunden mit dem gleichen (einmaligen!!) Matchcode gibt.
3. Dazu habe ich den Eingang des Heater mit dem CSV Matchcodefeld verbunden und den Ausgang mit dem RECORD_ID-Feld der DB.
4. Im Heater ist "Feld" = RECORD_ID und
5. "Where" = Matchcoder=$1
Das Feld Matchcode auf der Write-Seite ist neben dem Feld RECORD_ID ebenfalls PrimaryKey.

So, mit dieser Einstellung lief es in der 0.6er Version einwandfrei.
Jetzt kommt diese Fehlermeldung:

LookUp Error!
select RECORD_ID where Matchcode="richtig eingelesener Matchcode-Name der CSV-Datei".

Ich hoffe, dass ich mich einigermaßen verständlich ausgedrückt habe.

Gruß
Ingo
Kategorie: MySQL Adapter
46 - 60 von 62 Ergebnissen angezeigt.
Ladezeit der Seite: 0.378 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