Zum Hauptinhalt springen
Weil einfach - produktiver ist

Der Daten Spezialist

Konvertieren Sie die Daten mühelos zwischen verschiedenen Formaten ohne Programmierkenntnisse dank Visual Designer. Effizient und super einfach.
Flowheater Chart

Felder zweier Dateien auf Readseite vergleichen

Mehr
12 Jahre 7 Monate her #877 von Tim
Hallo,

Im Grunde sollte der Titel heißen "2 Dateien auf der Readseite", doch den gab es weiter unten schon und so ganz wird das der Sache nicht wirklich gerecht, da der FH es in der aktuellen Version nicht zulässt, mehrere Files auf der Write-Seite zu verarbeiten.

Da mich der Umgang mit dem Replaceheater nicht weiter zum Ziel brachte, da der imho nur ein Feld zurückgeben kann, ist mir noch keine Lösung einfallen und starte diesen Aufruf hier.

Folgende Aufgabenstellung:

2 CSV Dateien sollen zusammengeführt werden. Als Kriterium dafür soll jeweils 1 Feld aus jeder der beiden CSV Dateien auf match verglichen werden, ansonsten werden die Daten nicht zusammengeführt. Als sind die beiden Felder das Kriterium.

Der Replaceheater ermöglicht mir zwar das Ersetzen, doch nur das eines einzigen Feldes und ich habe mindestens 10 davon die in den Export zur Writeseite eingeschleust werden müssten


Als mögliche Lösung käme ein NET-Heater zum Einsatz, in dem ich das File einmalig einlese, deren 10 Felder in ein Array packe und zuvor noch das betreffende Feld gegen das aus der Readseite abgleiche.

Doch dann kommt noch die Mimik, wie ich die anderen Felder zur Writeseite durchschleuse.
Geht das überhaupt, mehr als einen Rückgabewert im NET-heater und falls ja, wie?


Mir ist dabei klar, wie ich die Felder durchschleuse, doch was nicht in meinen Kopf will ist die Mimik die diesen Datensatz dann überspringen soll bei mismatch.

Haben Sie einen passenden workaround dazu parat?

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
12 Jahre 7 Monate her #878 von FlowHeater-Team
Der Abgleich von zwei oder auch mehreren CSV Dateien kann über den Umweg einer Datenbank durchgeführt werden. Im Anhang befindet sich dazu ein Beispiel. Hier verwende ich für die temporäre Zwischenspeicherung eine MS Access Datenbank.

Vorgehensweise)
  1. Anlegen einer Datenbank sowie einer Tabelle die alle Felder aller CSV Dateien die benötigt werden aufnehmen kann.
  2. Der erste CSV Import sollte die primäre CSV Datei beinhalten. Hier auf der WRITE Seite INSERT Aktivieren sowie die Option „Tabelle vor dem Import leeren“ aktivieren.
  3. Für alle weiteren CSV Importe die Option INSERT deaktivieren und nur UPDATES aktivieren. Zusätzlich muss hier der PrimaryKey (nur im FlowHeater) auf die ArtikelNummer umgebogen werden.
  4. Pro CSV Datei müssen jetzt nur die jeweils benötigten Felder mit der WRITE Seite Verbunden werden. Das Schlüsselfeld (hier die ArtikelNr) muss bei Updates immer mit der WRITE Seite verbunden werden, sonst weiß der FlowHeater nicht welchen Datensatz er aktualisieren soll.
  5. Zum Schluss muss das Ganze dann noch einmalig exportiert werden.
Führen Sie im Beispiel die Definitionen

artikel.fhd
preise.fhd
fremdsystem.fhd
export-csv-abgleich.fhd


Nacheinander aus, haben Sie am Ende einen CSV Export der alle Daten der einzelnen CSV Dateien enthält. Zusätzlich habe ich hier noch in der Definition "Fremdsystem.fhd" eingebaut, dass nur Artikel die auch hier vorhanden sind exportiert werden!

Hinweis: Über das Batch Modul können diese Schritte automatisiert ausgeführt werden.


.Net Script Heater mit mehreren Rückgabewerten)
Das geht mittlerweile. Über Parameter können Sie hier auch mehrere Werte in der Definition zur Verfügung stellen.
Code:
int count = 0; public object DoWork() { count++; // Parameter setzen Parameter["p2"].Value = "### 2. Parameter ###" + count.ToString(); Parameter["p3"].Value = "!!! 3. Parameter !!!" + count.ToString(); // und so weiter // zugriff auf Parameter im Script string s = (string)Parameter["p2"].GetString(); // Rückgabe auch als Intger oder DateTime, Double, Decimal, Long, Boolean // DateTime dt = (DateTime)Parameter["p2"].GetDateTime(); // int i = (int)Parameter["p2"].GetInt(); return "??? 1.Parameter ???" + count.ToString(); }

Im Anhang befindet sich dazu ebenfalls ein Beispiel "dotnet-script-mehrere-rückgabewerte.fhd".

Anhang csv_dateien_abgleich.zip wurde nicht gefunden.


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.

Mehr
12 Jahre 6 Monate her #905 von Tim
Hallo,

vielen Dank für die Hilfestellung, sie passte wie immer gut.


Ich habe auch auf die Rückgabewerte aufgegriffen und zu einer ziemlich unspektakulären und einfachen Lösung umgebaut.

Die dazu auch noch schlecht zu funktionieren scheint :laugh:

Leider darf ich keine Files uploaden, doch ich würde Ihnen gerne mal was zusenden damit Sie einen Blick drauf werfen können.

Ich nehme dazu die mir bekannte mailadresse, hoffe das ist okay.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.263 Sekunden
FlowHeater Logo

FlowHeater - Der Daten Spezialist

Effiziente Datenintegration und Transformation mit FlowHeater - Ihre Lösung für nahtlosen Datentransfer.

Rechtliches

Support & Kontakt

Kontaktinformation

Telefon:
0951 / 99339792

E-Mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.


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