Die Synchronisationsskripten für die Tabelle Customer veranschaulichen die zeitstempelbasierte Synchronisation und das Verteilen von Zeilen. Beide Methoden minimieren die während der Synchronisation übertragenen Datenmengen und gewährleisten konsistente Tabellendaten.
Weitere Hinweise finden Sie unter:
Die Geschäftsregeln für die Kunden lauten folgendermaßen:
Kundendaten können in der konsolidierten und in der entfernten Datenbank geändert werden.
In gewissen Zeitabständen können Kunden den Vertriebsmitarbeitern neu zugeordnet werden. Dieses Verfahren wird im Allgemeinen "Gebietsregulierung" genannt.
Jede entfernte Datenbank enthält nur die Kunden, die ihr zugeordnet wurden.
download_cursor Das folgende download_cursor-Skript liest nur aktive Kunden ein, deren Daten sich seit dem letzten erfolgreichen Download geändert haben. Hier werden auch Kunden nach Vertriebsmitarbeitern gefiltert.
SELECT cust_id, Customer.name, Customer.rep_id FROM Customer key join SalesRep WHERE Customer.last_modified >= ? AND SalesRep.ml_username = ? AND Customer.active = 1 |
download_delete_cursor Das folgende download_delete_cursor-Skript liest nur Kunden ein, deren Daten sich seit dem letzten erfolgreichen Download geändert haben. Es löscht aus der entfernten Datenbank alle als inaktiv markierten Kunden bzw. solche, die nicht dem Vertriebsmitarbeiter zugeordnet sind.
SELECT cust_id FROM Customer key join SalesRep WHERE Customer.last_modified >= ? AND ( SalesRep.ml_username != ? OR Customer.active = 0 ) |
Wenn Zeilen aus der Tabelle Customer in der konsolidierten Datenbank gelöscht werden, erscheinen sie nicht in dieser Ergebnismenge und werden also nicht aus den entfernten Datenbanken gelöscht. Stattdessen werden solche Kunden als inaktiv markiert.
Im Falle einer Gebietsregulierung werden mit diesem Skript die Kunden gelöscht, die dem betreffenden Vertriebsmitarbeiter nicht mehr zugeordnet sind. Es löscht auch Kunden, die an andere Vertriebsmitarbeiter übertragen wurden. Solche zusätzlichen Löschungen werden mit dem SQLCODE 100 gekennzeichnet, haben jedoch keinen Einfluss auf die Synchronisation. Es könnte ein komplexeres Skript entwickelt werden, das nur die Kunden abruft, die dem aktuellen Vertriebsmitarbeiter entzogen wurden.
Der MobiLink-Client führt kaskadierende Löschungen in der entfernten Datenbank aus, sodass dieses Skript auch alle Ansprechpartner löscht, die bei Kunden arbeiten, die anderen Vertriebsmitarbeitern zugewiesen wurden.
Kundendaten können in der entfernten Datenbank eingefügt, aktualisiert oder gelöscht werden. Die entsprechenden Skripten für diese Vorgänge lauten folgendermaßen:
upload_insert Das folgende upload_insert-Skript fügt eine Zeile in die Customer-Tabelle ein und markiert den Kunden als aktiv:
INSERT INTO Customer( cust_id, name, rep_id, active ) VALUES ( ?, ?, ?, 1 ) |
upload_update Das folgende upload_update-Skript ändert die Kundendaten in der konsolidierten Datenbank. In dieser Tabelle wird keine Konflikterkennung durchgeführt.
UPDATE Customer SET name = ?, rep_id = ? WHERE cust_id = ? |
upload_delete Das folgende upload_delete-Skript markiert die Kunden in der konsolidierten Datenbank als inaktiv. Es löscht keine Zeile.
UPDATE Customer SET active = 0 WHERE cust_id = ? |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |