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 » MobiLink-Modelle » Modellmodus

 

Download-Teilmenge ändern

Jede entfernte MobiLink-Datenbank kann eine Teilmenge der Daten in der konsolidierten Datenbank synchronisieren. Sie können die Download-Teilmenge für jede Tabelle anpassen.

Folgende Optionen stehen zum Anpassen der Download-Teilmenge zur Verfügung:

  • Benutzer   Wählen Sie diese Option, um Daten nach dem MobiLink-Benutzernamen herunterzuladen. Hierbei werden unterschiedliche Daten für unterschiedliche registrierte MobiLink-Benutzer heruntergeladen.

    Um diese Option zu verwenden, muss die konsolidierte Datenbank MobiLink-Benutzernamen enthalten. Sie wählen die MobiLink-Benutzernamen aus, wenn Sie das Deployment durchführen. Auf diese Weise können Sie Namen auswählen, die vorhandenen Werten in der konsolidierten Datenbank entsprechen. (Die für die MobiLink-Benutzernamen verwendete Spalte muss von einem Typ sein, der die für den Benutzernamen verwendeten Werte speichern kann.) Wenn sich die MobiLink-Benutzernamen nicht in der Tabelle befinden, für die Sie eine Teilmenge erstellen, müssen Sie eine Verknüpfung zu der Tabelle herstellen, in der sie sich befinden.

  • Entfernt   Wählen Sie diese Option, um Daten nach der entfernten ID zu partitionieren. Hierbei werden unterschiedliche Daten in unterschiedliche entfernte Datenbanken heruntergeladen.

    Um diese Option zu verwenden, müssen die entfernten IDs in der konsolidierten Datenbank enthalten sein. Entfernte IDs werden standardmäßig als GUIDs erstellt. Sie können jedoch die entfernten IDs so festlegen, dass sie den vorhandenen Werten in der konsolidierten Datenbank entsprechen. (Die für die entfernten IDs verwendete Spalte muss von einem Typ sein, der die für die entfernten IDs verwendeten Werte speichern kann.) Wenn sich die entfernten IDs nicht in der Tabelle befinden, für die Sie eine Teilmenge erstellen, müssen Sie eine Verknüpfung zu der Tabelle herstellen, in der sie sich befinden.

  • Benutzerdefiniert   Wählen Sie diese Option, um einen SQL-Ausdruck zu verwenden, der bestimmt, welche Zeilen heruntergeladen werden. Jede Synchronisation lädt nur Zeilen herunter, für die der SQL-Ausdruck TRUE ist. Dieser SQL-Ausdruck ist mit dem in download_cursor-Skripten verwendeten SQL-Ausdruck identisch. Er wird teilweise für Sie generiert.

♦  So ändern Sie die Download-Teilmenge
  1. Öffnen Sie im Modellmodus das Register Zuordnungen.

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

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

  4. Wenn Sie Benutzer, Entfernt oder Benutzerdefiniert gewählt haben, öffnen Sie das Register Download-Teilmenge im unteren Fensterbereich.

  5. Wenn Sie Benutzer oder Entfernt wählen, können Sie im Register Download-Teilmenge die Spalte identifizieren, welche die MobiLink-Benutzernamen oder entfernte IDs enthält. Sie können auch einen Join von Tabellen eingeben, um die MobiLink-Benutzernamen oder entfernte IDs abzurufen.

  6. Wenn Sie Benutzerdefiniert gewählt haben, enthält das Register Download-Teilmenge 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) eine WHERE-Bedingung ein, die den Join und die Download-Teilmenge angibt

Siehe auch
Beispiel (Benutzer)

Beispielsweise kann die Tabelle ULOrder in CustDB von Benutzern gemeinsam verwendet werden. Aufträge werden standardmäßig dem Mitarbeiter zugeordnet, der sie erstellt hat. Es kann jedoch vorkommen, dass 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 Datenbank CustDB stellt zu diesem Zweck die Tabelle ULEmpCust zur Verfügung. Über diese Tabelle können Sie Kunden Mitarbeitern zuordnen. Diese Tabellen laden alle Aufträge für die Mitarbeiter-Kundenbeziehung herunter.

Um diesen Vorgang auszuführen, zeigen Sie zunächst das download_cursor-Skript für ULOrder ohne Download-Teilmenge an. Wählen Sie im Register Zuordnungen die Tabelle ULEmpCust aus. Wählen Sie für die Spalte Dnld. typ die Option "Zeitstempelbasiert" und für die Spalte Dnld. -Teilm. den Wert "Keine" aus. 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 zum Register Zuordnungen. Ändern Sie die Spalte Dnld. -Teilm. für "ULOrder" auf "Benutzer". Öffnen Sie das Register Download-Teilmenge im unteren Fensterbereich. 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. Die Join-Bedingung muss emp_id = emp_id sein.

Klicken Sie mit der rechten Maustaste in die Tabelle im oberen Fensterbereich, und wählen Sie Gehe zu Ereignissen. Das download_cursor-Skript für die Tabelle sieht nun 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", "DBA"."ULEmpCust"
WHERE "DBA"."ULOrder"."last_modified" >= {ml s.last_table_download} 
AND "DBA"."ULOrder"."emp_id" = "DBA"."ULEmpCust"."emp_id" 
AND "DBA"."ULEmpCust"."emp_id" = {ml s.username}
Beispiel (Benutzerdefiniert)

Beispiel: Sie möchten die Download-Teilmenge einer Customer-Tabelle nach MobiLink-Benutzern festlegen und nur Zeilen mit dem Wert active=1 herunterladen. Die MobiLink-Benutzernamen sind jedoch nicht in der betreffenden Tabelle vorhanden. Sie müssen also einen Join mit einer Tabelle namens SalesRep erstellen, welche die Benutzernamen enthält.

Wählen Sie im Register Zuordnungen die Option Zeitstempelbasiert für die Spalte Dnld.-Typ und Benutzerdefiniert für die Spalte Dnld.-Teilm. in der Tabelle "Customer". Öffnen Sie das Register Download-Teilmenge im unteren Fensterbereich. 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

Klicken Sie mit der rechten Maustaste in die Tabelle im oberen Fensterbereich, und wählen Sie Gehe zu Ereignissen. 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.