Dynamischer Daten Import / Export

datenbank

weil Einfach - produktiver ist
Mit der Freeware Version können bis zu 10.000 Datensätze verarbeitet werden!
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Willkommen im FlowHeater Support Forum!

Hier werden Fragen zum Umgang mit dem FlowHeater beantwortet.

THEMA: mehrfache Einträge filtern

mehrfache Einträge filtern 1 Jahr 11 Monate her #1796

  • Niels
  • Nielss Avatar
  • Offline
  • New Member
  • Beiträge: 11
Hallo zusammen,

Ich habe eine Read-Tabelle mit 3 Spalten (ID, Kundennummer und Mailadresse).
In der Zieltabelle ist das eigentlich gleich, nur darf hier die Mailadresse nicht mehrfach vorhanden sein, was in der Quelltabelle der Fall sein kann. Dann soll nur ein Datensatz übernommen werden. Alle Versuche auf SQL-Basis das Thema zu lösen sind mir bislang nicht gelungen, daher frage ich mich, ob ich das im FlowHeater erschlagen kann.
Zudem kann es sein, dass in der Zieltabelle die Mailadresse schon unter einem ganz anderen Record zu finden ist - dann soll nichts kopiert werden.
Ich müsste also für jede Zeile lesen, ob die Mailadresse schon in der Zieltabelle ist. Wenn ja muss ich prüfen ob die ID's übereinstimmen und könnte den Datensatz aktualisieren. Das kann ja nur die Kundennummer sein und eine Änderung dieser ist ja eher auch mehr als unwahrscheinlich, aber im 2. Schritt muss ich noch eine 2. Zieltabelle mit weiteren Informationen füllen, wobei die Aktion interessant wird.
Sind Quell- und Ziel-ID bei gleicher Mailadresse ungleich, soll der Quelldatensatz nicht übernommen werden.
Kann ich das mit FlowHeater bewerkstelligen?

mehrfache Grüße
Niels
Der Administrator hat öffentliche Schreibrechte deaktiviert.

mehrfache Einträge filtern 1 Jahr 11 Monate her #1797

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1102
Da gibt es mehrere Möglichkeiten. Ich zeige hier mal die einfachste davon auf. Ein Beispiel dazu finden Sie im Anhang.

Im Beispiel verwende ich die FlowHeater Datenbank Adapter Eigenschaften „Daten anfügen (Insert)“ und „Daten aktualisieren (Update)“, siehe Screenshot.



Dann habe ich hier auch noch die PrimaryKey Feld im FlowHeater auf die Kundennummer sowie Email Adresse umgebogen. So kümmert sich der FlowHeater automatisch darum anhand dieser Feld entweder einen Insert oder ein Update zu fahren.

Um jetzt noch auf der READ Seite doppelte Email Adressen zu filtern verwende ich den Filter Heater mit der „Duplikate filtern“ Option.
Es können noch wesentlich komplexere Filtermöglichkeiten umgesetzt werden, das hängt allerdings von Ihren Daten ab.

Das Beispiel im Anhang verwendet als Eingang eine CSV Testdatei und schreibt die Daten in eine Access Datenbank.

Dateianhang:

Dateiname: csv-insert-update.zip
Dateigröße:12 KB
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.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

mehrfache Einträge filtern 1 Jahr 11 Monate her #1798

  • Niels
  • Nielss Avatar
  • Offline
  • New Member
  • Beiträge: 11
Hey super, Danke - das ist war zu einfach für mich :whistle:
Kann man jetzt auch noch erreichen, dass kein Update ausgeführt wird, wenn ein Feld in den Zieldaten einen gewissen Wert aufweist?
Hintergrund: Evtl. könnten die Daten auch in der Zielanwendung korrigiert werden, dann wäre es schön, wenn diese nicht mehr vom Heat erfasst werden. Dazu gibt es bei jedem Datensatz ein Timestamp, was ich nun im FlowHeater mit dem Wert 'now' fülle. Wenn nun der Heat täglich um 23:45 läuft, wäre es das Einfachste zu sagen, dass Änderungen mit einer kleineren Uhrzeit in der Zielanwendung vorgenommen wurden und nicht von der Quelle überschrieben werden sollen (also autark werden).

beidseitig änderbare Grüße
Niels
Letzte Änderung: 1 Jahr 11 Monate her von Niels.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

mehrfache Einträge filtern 1 Jahr 11 Monate her #1800

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1102
Auch das ist möglich, allerdings denke ich dass das mit dem Timestamp so nicht ganz abbildbar ist. Der Timestamp wird immer kleiner als der vom aktuellen Datenabgleich sein, oder verstehe ich das falsch? Ich habe das Beispiel um ein Feld „gesperrt“ erweitert, wenn dieses Feld „True bzw. Wahr“ ist, wird der Datensatz ebenfalls gefiltert. Das Feld müsste dann bei manuellen Änderungen auf TRUE/WAHR gesetzt werden.

Damit das funktioniert, benötigen Sie 3 weitere Heater.

1x einen Set Parameter Heater zum Setzen der Kundennummer ($KundenNr$) die benötigt wird um eine dynamische SQL Abfrage bilden zu können

1x den SQL Heater, der den aktuellen Wert aus der Tabelle „t_kunden“ vom Feld „gesperrt“ holt
select [gesperrt] from t_kunden where [kundennummer] = '$KundenNr$'

1x einen weiteren Filter Heater, der anhand des Inhaltes den Datensatz vor der Verarbeitung filtert.

So können Sie jedes beliebige Feld der WRITE Datenbank abrufen und ggf. Filterbedingungen damit bilden.

Achtung: Beim Anlegen des Beispiels wurde ein kleiner Fehler festgestellt. Damit der Filter mit dem Parameter zusammen funktioniert ist es erforderlich die Definition im „Memory“ Modus auszuführen. Das Problem wird mit der nächsten Version bereinigt.

Dateianhang:

Dateiname: csv-insert...ate2.zip
Dateigröße:13 KB
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.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

mehrfache Einträge filtern 1 Jahr 11 Monate her #1803

  • Niels
  • Nielss Avatar
  • Offline
  • New Member
  • Beiträge: 11
Genial!
Leider unterstützt der Memory-Modus keine Write-Multi-Adapter-Konfiguration.
Aber das ist nicht dramatisch - da warte ich auf das Update.

Danke
Niels
Der Administrator hat öffentliche Schreibrechte deaktiviert.

mehrfache Einträge filtern 1 Jahr 11 Monate her #1804

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1102
über folgenden Link können Sie sich eine erste Preview der demnächst erscheinenden Version 3.5.2 herunterladen.

FlowHeaterBeta.zip
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.
Letzte Änderung: 10 Monate 4 Wochen her von FlowHeater-Team.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.089 Sekunden