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: zwei Werte auf der Read- und auf der Write-Seite vergleichen

zwei Werte auf der Read- und auf der Write-Seite vergleichen 5 Jahre 3 Monate her #630

  • derIch
  • derIchs Avatar
  • Offline
  • New Member
  • Beiträge: 3
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!
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: zwei Werte auf der Read- und auf der Write-Seite vergleichen 5 Jahre 3 Monate her #631

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1101
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.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.075 Sekunden