Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » MobiLink - Erste Orientierung » Einführung in die MobiLink-Technologie » Einführungen in das MobiLink-Beispiel Contact » Das Beispiel Contact synchronisieren

 

Kunden im Beispiel Contact synchronisieren

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:

Geschäftsregeln

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.

Downloads
  • 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.

Uploads

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 = ?