Synchronisieren von Filtern und in Beziehung stehenden Daten

Bei der bidirektionalen und der unidirektionalen Replikation werden die gleichen Filter und Regeln für Beziehungsklassen, die bei der Replikaterstellung verwendet wurde, während der Synchronisierung angewendet. Beim Ermitteln der zu sendenden Änderungen werden alle Änderungen an den einzelnen Replikat-Datasets ausgewertet, die seit der letzten Synchronisierung angewendet wurden. Erfüllt eine Änderung den Filter des Replikats, wird sie synchronisiert.

Hinweis:

Alle an Check-Out-/Check-In-Replikaten vorgenommenen Änderungen werden synchronisiert. Daher gelten die folgenden Regeln nicht für Check-Out-/Check-In-Replikate. Eine Ausnahme bilden die Regeln aus dem Abschnitt "Beibehalten von Beziehungen".

In der folgenden Abbildung ist dargestellt, wie der Replikatbereichsfilter während der Synchronisierung angewendet wird, wenn Features in einer Editiersitzung verschoben werden. Die folgenden Änderungen werden während der Synchronisierung an das relative Replikat gesendet:

  1. Ein Feature wird innerhalb des Replikatbereichs an eine neue Position verschoben.
  2. Ein Feature wird aus dem Replikatbereich verschoben. Während der Synchronisierung wird die neue Position des Features im relativen Replikat aktualisiert, auch wenn sie außerhalb des Replikatbereichs liegt.
    Hinweis:

    Damit Änderungen gesendet werden, muss das Feature zum Zeitpunkt der vorherigen Synchronisierung innerhalb des Replikatfilters vorhanden gewesen sein. Wenn Sie beispielsweise ein Feature einfügen, es aus dem Bereich verschieben und dann die Synchronisierung mit dem relativen Replikat durchführen, werden die Änderungen nicht gesendet.

  3. Ein Feature wird von außerhalb des Replikatbereichs in den Replikatbereich verschoben.
  4. Wenn ein Feature verschoben wird, dass sich nicht im Replikatbereich befindet, wird dies während der Synchronisierung im relativen Replikat nicht aktualisiert.

Der Replikatbereichsfilter wird während der Synchronisierung angewendet, wenn Features in einer Editiersitzung verschoben werden.

Wenn eine Änderung die Filter nicht erfüllt, kann sie trotzdem synchronisiert werden, sofern für sie die folgenden Kriterien gelten:

  • Sie gehört zu einem Dataset mit dem Filter "Nur Schema" und ist Teil von mindestens einer Beziehungsklasse.
  • Sie erfüllt zudem mindestens eine der folgenden Bedingungen:
    • Sie bezieht sich auf eine Zeile in einem anderen Dataset, das die Filter erfüllt. Die Zeile, auf die sie sich bezieht, muss seit der letzten Synchronisierung nicht bearbeitet worden sein.
    • Sie gehört zu einem Dataset, das sich auf ein Dataset mit dem Filter "Nur Schema" bezieht.

Dies bedeutet, dass Zeilen in Feature-Classes oder Tabellen, die andere Filter als "Nur Schema" aufweisen, nur synchronisiert werden können, wenn sie die Filterkriterien erfüllen.

Diese Regeln ermöglichen zudem das Verketten von zusammengehörenden Daten. Dies kann vorkommen, wenn eine Zeile in einer entfernten Zielklasse durch Beziehungsklassen über mehrere Beziehungen zum Ursprung im Replikat zurückverfolgt werden kann.

Beibehalten von Beziehungen

Bei der Synchronisierung werden Beziehungen beibehalten. Wenn beispielsweise eine neue Beziehung im relativen Replikat hinzugefügt wird, bleibt sie beim Synchronisieren der beteiligten Zeilen erhalten. Für das Beibehalten der Beziehung kann eine Änderung des Fremdschlüsselwertes im Replikat erforderlich sein, das die Änderungen empfängt, wenn der ursprüngliche Schlüssel das Feld "objectID" ist.

Anhand der folgenden Beispiele wird das Verhalten zusammengehörender Datensätze während der Synchronisierung beschrieben:

Beispiel

In diesem Beispiel werden drei Gebäude über eine Definitionsabfrage für die Replikation ausgewählt. Da zusammengehörende Datensätze auch in die Replikaterstellung einbezogen werden, wird die zugehörige Zielklasse ebenfalls repliziert. Felder in der Zielklasse, die sich auf das Ursprungs-Feature beziehen, werden im Child-Replikat bearbeitet. Wenn die Replikate synchronisiert werden, werden diese Änderungen in der zugehörigen Zielklasse im Parent-Replikat aktualisiert.

Replikaterstellung und -synchronisierung beim Einbeziehen zusammengehörender Datensätze in ein Replikat

Beispiel 1

In diesem ersten Beispiel wurden einige Features einer Quellklasse (Gebäude) für die Replikation ausgewählt. Die Gebäude sind über eine einfache Beziehungsklasse mit Attributdatensätzen in einer Tabelle verknüpft. Die Datensätze sind dabei von der Replikation ausgeschlossen. Bei der Bearbeitung des Child-Replikats wurde ein Gebäude gelöscht. Um bei der Synchronisierung die Beziehung mit dem gelöschten Feature ungültig zu machen, wird der entsprechende Eintrag im Fremdschlüsselfeld der zugehörigen Zielklasse (Tabelle) auf NULL festgelegt.

Replikaterstellung und -synchronisierung beim Einbeziehen zusammengehörender Datensätze aus einer attributierten einfachen Beziehungsklasse in ein Replikat

Dieses Synchronisierungsverhalten kann auch zum Löschen der Zeilen führen, die die Beziehungen in einer attributierten Beziehungsklassentabelle darstellen (wie im nächsten Beispiel dargestellt).

Beispiel 2

In diesem Beispiel ist die Beziehung zwischen der Ursprungs-Feature-Class und der Zielklassentabelle attributiert. Dies bedeutet, dass die Beziehung selbst eine zugehörige Tabelle aufweist. Die Beziehung und die Zielklasse wurden beide von der Replikaterstellung ausgeschlossen. Änderungen an der Ursprungs-Feature-Class im Child-Replikat haben zum Löschen eines Features geführt. Bei der Synchronisierung wird die Zeile der attributierten Beziehungsklassentabelle entfernt, die die Beziehung dieses Features mit einem Objekt in der Zielklasse darstellt.

Nur Beziehungen werden während der Synchronisierung gelöscht. Die zugehörigen Objekte selbst werden nicht gelöscht.

Replikaterstellung und -synchronisierung beim Einbeziehen zusammengehörender Datensätze aus einer attributierten Beziehungsklasse in ein Replikat

Verwandte Themen