Skip to main content
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 Download

zwei Werte auf der Read- und auf der Write-Seite vergleichen

Mehr
12 Jahre 7 Monate her #630 von derIch
Hallo,

ich komme in dieser Sache nicht weiter. Bei einem Abgleich zwischen einer ODBC-Tabelle auf der Read-Seite und einer MySql-Tabelle im Netz möchte ich nur dann den Wert auf der SQL-Seite verändern wenn dieser ungleich dem auf der ODBC-Seite ist.

Es geht um den Abgleich von Lagerbeständen zwischen diesen beiden Seiten. Blindes abgleichen funktioniert zwar dauert aber knapp 40 min.
Vorhanden ist auf beiden Seiten eine eindeutige Artikel-ID und auf ODBC-Seite das im Adapter berechnete Feld Bestand. Auf SQL-Seite existiert ein vorhandenes Feld für den Bestand.

Ich probiere es mit 2 x Lookup und einmal IfThenElse dazwischen. Ich bekomme aber nur die Fehlermeldung "Lookuo Error! select products_quantity from products where".

Mir fehlt der Eintrag in Where. Ich weiß nicht welche Angaben dort rein müssen wenn es keine festen Werte sind sondern ein Feld verglichen werden soll.

Für die Mühe besten Dank im voraus!

Bitte Anmelden um der Konversation beizutreten.

Mehr
12 Jahre 7 Monate her #631 von FlowHeater-Team
Der Lookup Heater benötigt in der WHERE Bedingung

z.B. ARTIKELID = $1

In diesem Fall müssen Sie die Artikel-ID von der READ Seite mit dem Lookup Heater verbinden. Der Lookup Heater nimmt dann diesen WERT und tauscht dann $1 mit dem Eingangsparameter aus.

Ich denke das wird die Verarbeitung nicht beschleunigen, da hier bei jedem Datensatz ein zusätzlicher SQL SELECT auf die externe MySQL Datenbank durchgeführt wird. Wahrscheinlich wird dieser Lösungsweg noch länger benötigen.

Hier 2 mögliche Ansätze wie sie das evtl. beschleunigen können
  1. Sie fahren immer einen kompletten Abgleich. Verbinden Sie für das UPDATE aber lediglich den Primary Key der Tabelle (ArtikelID) sowie das Feld das Sie aktualisieren möchten (Bestand). Hierdurch werden wesentlich kleinere SQL Update Statements gebildet.

    z.B. UPDATE IHRE_TABELE SET BESTAND = 123 WHERE ARTICLEID = 5000

    Das wird zwar auch keine Wunder vollbringen aber ca. 1/3 sollte das schneller durchlaufen als vorher.
  2. Sie fügen in Ihrer lokalen Tabelle ein neues Feld z.B. "OnlineBestand" ein. Dieses Feld der READ Seite aktualisieren sie in der Update Definition über einen .NET Script Heater jedes Mal mit dem aktuellen Wert. So können Sie schon auf der lokalen Seite prüfen ob Sie was aktualisieren müssen

    z.B. select * from lokale_tabelle where bestand <> onlinebestand

    So werden nur wirklich geänderte Datensätze in der MySQL Datenbank aktualisiert.

    Ein ähnliches Beispiel finden Sie hier: Datenvergleich beim Import
    Im Skript müssten Sie hier AdapterWrite mit AdapterRead ersetzen!
Falls Punkt 2) in Frage kommt, kann ich Ihnen dazu auch ein kleines Beispiel anfertigen.

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 um der Konversation beizutreten.

Ladezeit der Seite: 0.262 Sekunden

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.