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

SAP Sybase SQL Anywhere 16.0 (Deutsch) » MobiLink - Erste Orientierung » MobiLink-Technologie » MobiLink-Plug-In für Sybase Central » Synchronisationsmodelle » Synchronisationsmodellaufgaben

 

Download-Teilmenge ändern

Passen Sie die Download-Teilmenge für jede Tabelle an. Jede entfernte MobiLink-Datenbank kann eine Teilmenge der Daten in der konsolidierten Datenbank synchronisieren.

Voraussetzungen

Sie müssen über ein Synchronisationsmodell verfügen und die Tabellenzuordnung darf nicht vom Downloadtyp Benutzerdefiniert sein.

 Aufgabe
  1. Doppelklicken Sie auf den MobiLink-Projektnamen.

  2. Doppelklicken Sie auf Synchronisationsmodelle und wählen Sie den Namen Ihres Synchronisationsmodells aus.

  3. Klicken Sie auf die Registerkarte Zuordnungen.

  4. Wählen Sie im Fenster Tabellenzuordnungen eine entfernte Tabelle aus.

  5. Öffnen Sie im Fensterausschnitt Details die Registerkarte Download-Teilmenge.

  6. Wählen Sie eine der folgenden Download-Teilmengen aus der Dropdown-Liste Download-Teilmenge: Keine, Benutzer, Entfernt oder Benutzerdefiniert.

  7. Wenn Sie Benutzer oder Entfernt wählen, geben Sie an, wo sich die Spalte mit dem Benutzernamen und der entfernten ID befindet.

    Wenn sich die Spalte in der konsolidierten Tabelle befindet, die synchronisiert wird, wählen Sie Spalte in der konsolidierten Tabelle verwenden. Wählen Sie dann die Spalte mit dem Benutzernamen oder der entfernten ID aus der Dropdown-Liste Spaltenname.

    Wenn sich die Spalte in einer anderen Tabelle befindet, wählen Sie Spalte in einer gemeinsamen Beziehungstabelle verwenden. Wählen Sie die Tabelle, die die Spalte enthält, aus der Dropdown-Liste Zu verknüpfende Tabelle. Wählen Sie die Spalte, die den Benutzernamen oder die entfernte ID enthält, in der Dropdown-Liste Übereinstimmende Spalte aus. Verwenden Sie die Join-Bedingung, um die Verknüpfung der synchronisierenden Tabelle mit der Schattentabelle zu definieren.

  8. Wenn Sie Benutzerdefiniert gewählt haben, gibt es zwei Textfelder, in die Sie Informationen zum Erstellen eines download_cursor-Skripts eingeben können. Sie müssen kein vollständiges download_cursor-Skript schreiben. Geben Sie lediglich zusätzliche Informationen ein, um den Join und andere Einschränkungen in der Download-Teilmenge zu identifizieren.

    • Geben Sie in das erste Textfeld (Tabellen, die der FROM-Klausel des Download-Cursors hinzugefügt werden sollen) den Tabellennamen ein, wenn das download_cursor-Skript einen Join mit anderen Tabellen erfordert. Wenn der Join mehrere Tabellen erfordert, trennen Sie die Tabellen durch ein Komma.

    • Geben Sie in das zweite Textfeld (In der WHERE-Klausel des Download-Cursors zu verwendender SQL-Ausdruck), einen SQL-Ausdruck ein, der der generierten WHERE-Klausel hinzugefügt werden soll und der die Download-Teilmengenbedingung und die Join-Bedingung festlegt. Sie können benannte MobiLink-Parameter einschließlich Authentifizierungsparametern in dem Ausdruck verwenden. Standardmäßig werden derselbe Ausdruck und dieselben verknüpften Tabellen für die Download-Löschen-Teilmenge verwendet. Wenn Sie eine Schattentabelle zum Protokollieren von Löschungen verwenden und denselben Ausdruck verwenden möchten, vermeiden Sie die Verwendung des Namens der Basistabelle im Ausdruck. Wenn dies nicht möglich ist, verwenden Sie eine benutzerdefinierte Download-Löschen-Teilmenge.

Ergebnisse

Die Download-Teilmenge wird geändert.

Beispiel

Benutzerbeispiel

Beispielsweise kann die Tabelle ULOrder in CustDB von Benutzern gemeinsam verwendet werden. Standardmäßig werden Bestellungen dem Mitarbeiter zugeordnet, der sie erstellt hat. Es gibt jedoch Fälle, bei denen ein Mitarbeiter Aufträge anzeigen muss, die von einem anderen Mitarbeiter erstellt wurden. Beispiel: Ein Abteilungsleiter benötigt Zugriff auf alle Aufträge, die von den Mitarbeitern der Abteilung erstellt wurden. Die CustDB-Datenbank stellt zu diesem Zweck die ULEmpCust-Tabelle zur Verfügung. Über diese Tabelle können Sie Kunden Mitarbeitern zuordnen. Diese Tabellen laden alle Aufträge für die Mitarbeiter-Kundenbeziehung herunter.

Zeigen Sie download_cursor für ULOrder ohne Download-Teilmenge an. Wählen Sie auf der Registerkarte Zuordnungen die Tabelle ULEmpCust aus. Wählen Sie Zeitstempel für Downloadtyp und Keine für Download-Teilmenge. Klicken Sie mit der rechten Maustaste in die Tabelle, und wählen Sie Gehe zu Ereignissen. Das download_cursor-Skript für die Tabelle sieht folgendermaßen aus:



SELECT "DBA"."ULOrder"."order_id",
    "DBA"."ULOrder"."cust_id",
    "DBA"."ULOrder"."prod_id",
    "DBA"."ULOrder"."emp_id",
    "DBA"."ULOrder"."disc",
    "DBA"."ULOrder"."quant",
    "DBA"."ULOrder"."notes",
    "DBA"."ULOrder"."status"
FROM "DBA"."ULOrder"
WHERE "DBA"."ULOrder"."last_modified" >= {ml s.last_table_download}

Wechseln Sie erneut zur Registerkarte Zuordnungen. Wählen Sie auf der Registerkarte Download-Teilmenge des Fensterausschnitts Details in der Dropdown-Liste Download-Teilmenge für ULOrder die Option Benutzer. Wählen Sie Eine Spalte in einer verknüpften Beziehungstabelle verwenden. Wählen Sie ULEmpCust als die zu verknüpfende Tabelle. Wählen Sie für die Übereinstimmungsspalte emp_id. Wählen Sie für die Join-Bedingung DBA.ULOrder.cust_id = DBA.ULEmpCust.cust_id.

Klicken Sie mit der rechten Maustaste in die Tabelle im oberen Fensterbereich und wählen Sie Gehe zu Ereignissen aus. Das download_cursor-Skript für die Tabelle sieht nun folgendermaßen aus (die neuen Zeilen werden in Fettdruck gezeigt):



SELECT "DBA"."ULOrder"."order_id",
    "DBA"."ULOrder"."cust_id",
    "DBA"."ULOrder"."prod_id",
    "DBA"."ULOrder"."emp_id",
    "DBA"."ULOrder"."disc",
    "DBA"."ULOrder"."quant",
    "DBA"."ULOrder"."notes",
    "DBA"."ULOrder"."status"
FROM "DBA"."ULOrder", "DBA"."ULEmpCust"
WHERE "DBA"."ULOrder"."last_modified" >= {ml s.last_table_download} 
AND "DBA"."ULOrder"."cust_id" = "DBA"."ULEmpCust"."cust_id" 
AND "DBA"."ULEmpCust"."cust_id" = {ml s.username}

Beispiel für benutzerdefinierte Einstellungen

Angenommen, Sie möchten den Download einer Tabelle namens Customer nach MobiLink-Benutzern in Teilmengen aufteilen und nur Zeilen mit active=1 herunterladen. Die MobiLink-Benutzernamen sind in der auf Teilmengen aufgeteilten Tabelle nicht enthalten, daher müssen Sie einen Join zu einer Tabelle namens SalesRep erstellen, die die MobiLink-Benutzernamen enthält.

Wählen Sie auf der Registerkarte Zuordnungen die Zuordnung für die Tabelle Customer. Öffnen Sie die Registerkarte Downloadtyp im Fensterausschnitt Details Setzen Sie den Downloadtyp auf Zeitstempel. Öffnen Sie die Registerkarte Download-Teilmenge im Fensterausschnitt Details. Wählen Sie Benutzerdefiniert in der Dropdown-Liste Download-Teilmenge. Geben Sie in das erste Textfeld (Tabellen, die der FROM-Klausel des Download-Cursors hinzugefügt werden sollen) Folgendes ein:

SalesRep

Geben Sie in das zweite Textfeld (In der WHERE-Klausel des Download-Cursors zu verwendender SQL-Ausdruck) Folgendes ein:

SalesRep.ml_username = {ml s.username} 
   AND Customer.active = 1
   AND Customer.cust_id = SalesRep.cust_id

Beide Tabellen haben eine cust_id-Spalte, sodass bei Referenzen auf diese Spalten der Tabellenname im Ausdruck vorangestellt werden muss. Wenn Sie eine Schattentabelle zum Protokollieren von Löschungen verwenden, die heruntergeladen werden sollen, müssen Sie Keine oder Benutzerdefiniert in der Spalte Download-Löschen-Teilmenge für die Customer-Tabellenzuordnung auswählen, weil der Name der Schattentabelle "Customer_del" und nicht "Customer" lautet.

Klicken Sie mit der rechten Maustaste in die Tabelle im oberen Fensterbereich und wählen Sie Gehe zu Ereignissen aus. Das download_cursor-Skript für die Tabelle sieht nun folgendermaßen aus:

SELECT "DBA"."Customer"."cust_id",
 "DBA"."Customer"."cust_name"
FROM "DBA"."Customer", SalesRep
WHERE "DBA"."Customer"."last_modified" >= {ml s.last_table_download}
 AND SalesRep.ml_username = {ml s.username}
 AND Customer.active = 1
 AND Customer.cust_id = SalesRep.cust_id

Die letzte Zeile der WHERE-Klausel erstellt einen Schlüssel-Join zwischen den Tabellen Customer und SalesRep.