Arbeiten mit Repräsentationen in einer versionierten Umgebung

Zum Verständnis der Funktionsweise von Repräsentationen in einer versionierten Umgebung müssen Sie sich zuerst eingehend mit den Prinzipien der Versionierung und mit der Speicherung von Feature-Class-Repräsentationen in der Geodatabase vertraut machen.

Informationen zur VersionierungInformationen zur Speicherung von Repräsentationen

Funktionsweise von Repräsentationen in einer versionierten Umgebung

Feature-Classes mit Repräsentationen werden in einer versionierten Umgebung in sehr ähnlicher Weise wie Feature-Classes ohne Repräsentationen verarbeitet. Im Folgenden finden Sie wichtige Überlegungen zu diesem Thema:

Empfohlene Workflows für die Verwendung von Repräsentationen in einer versionierten Umgebung

Szenario 1

  • Bei der Parent-Version (Zielversion) ändert sich der Wert im Feld "RuleID" für eine Feature-Repräsentation von "R" in "R*".
  • Bei einer Child-Version (Editierversion) wird dieselbe Feature-Repräsentation bearbeitet, jedoch ein Attribut-Override hinzugefügt, der im Feld "Override" als "O*" gespeichert wird.
    • Die Child-Version wird mit der Parent-Version abgeglichen. Sie erhalten je nach der Definition der Konflikte unterschiedliche Ergebnisse.
    • Zeilenebene: Da dasselbe Feature in beiden Versionen bearbeitet wird, wird ein Konflikt festgestellt. Konflikte können je nach Priorität zugunsten der einen oder der anderen Version gelöst werden. Somit weisen die Felder "RuleID" und "Override" der Repräsentation am Ende entweder die Werte "R" und "O*" oder die Werte "R*" und "O" auf. Die Ergebnisse sind stimmig.
    • Spaltenebene: Es wird zwar dieselbe Feature-Repräsentation bearbeitet, aber die Bearbeitung erfolgt in zwei separaten Feldern oder Attributen, nämlich RuleID und Override. Daher werden keine Konflikte festgestellt. Beim Abgleich enthält das Feld "RuleID" der Feature-Repräsentation den Wert "R*" und das Attribut "Override" der Feature-Repräsentation den Wert "O*". Die Feature-Repräsentation enthält einen Attribut-Override für eine Eigenschaft, die nicht zu der Repräsentationsregel gehört, mit der sie repräsentiert wird. Die Ergebnisse sind unstimmig.
    • Um dies zu vermeiden, verwenden Sie die Option "row_level".

Szenario 2

  • Bei einer Parent-Version (Zielversion) wird das Shape der Feature-Repräsentation geändert oder ein Shape-Override hinzugefügt, der im Feld "Override" als "O*" gespeichert wird.
  • Bei einer Child-Version (Editierversion) wird dieselbe Feature-Repräsentation bearbeitet, jedoch ein Attribut-Override hinzugefügt, der im Feld "Override" als "O**" gespeichert wird.
  • Die Child-Version wird mit der Parent-Version abgeglichen. Gleichgültig, zugunsten welcher Version der Konflikt gelöst wird, das Ergebnis ist immer dasselbe.
    • Zeilen- oder Spaltenebene: In beiden Versionen wird dieselbe Feature-Repräsentation bearbeitet. Zudem wird derselbe Attribut-Override bearbeitet. Shape- und Attribut-Override sind zwar zwei verschiedene Elemente. Nach der Bearbeitung dieser Elemente wird das Ergebnis jedoch im selben Override-Feld gespeichert. Es werden Konflikte festgestellt, und nur eine der Änderungen, "O*" oder "O**", kann beibehalten werden.
    • Behelfslösung: Speichern Sie die Änderungen am Attribut nicht im Feld "Override", sondern in einem expliziten Feld. Wenn beim Abgleich die Definition auf Spaltenebene ausgewählt wird, entstehen keine Konflikte, da die Änderungen in zwei verschiedenen Feldern (nämlich im Feld "Override" und in einem expliziten Feld) vorgenommen wurden. Auf diese Weise können Sie beide Änderungen beibehalten.

Szenario 3

  • Bei der Parent-Version (Zielversion) wird für eine Feature-Repräsentation ein Attribut-Override erstellt. Das Feld "Override" wird auf "O*" aktualisiert.
  • Bei der Child-Version (Editierversion) wird dieselbe Feature-Repräsentation bearbeitet, die Feature-Repräsentation jedoch in eine freie Repräsentation konvertiert. Der Wert im Feld "RuleID" ändert sich in "-1", und in das Feld "Override" wird ein Grafikobjekt eingefügt. Folglich werden bei diesem Schritt beide Felder, "RuleID" und "Override", in "R*" und "O**" geändert.
  • Die Child-Version wird mit der Parent-Version abgeglichen.
    • Zeilen- oder Spaltenebene: Es besteht ein Konflikt. Wenn Sie den Konflikt zugunsten der Parent-Version (Zielversion) lösen, ist das Ergebnis unstimmig. Es besteht ein Attribut-Override, "O*", und der Wert im Feld "RuleID" beträgt "-1" oder "R*".
    • Behelfslösung: Lösen Sie den Konflikt zugunsten der Child-Version, um ein unstimmiges Ergebnis zu vermeiden. Behalten Sie in diesem Fall die durch die Child-Version vorgenommenen Änderungen bei und ignorieren Sie die durch die Parent-Version vorgenommenen Änderungen. Die durch die Parent-Version vorgenommenen Änderungen gehen dabei jedoch verloren.

Szenario 4

Wenn mehrere Kartenprodukte auf mehreren Feature-Class-Repräsentationen basieren, die sich in derselben Feature-Class befinden, verwenden Sie für die Bearbeitung der Kartenprodukte ein Szenario mit mehreren Projekten. Erstellen Sie z. B. eine separate Version für jedes Kartenprodukt: M1, M2, M3 usw. Gleichen Sie diese Versionen nach der Bearbeitung mit den Parent-Versionen (oder mit der Version "SDE.Default") ab, und schreiben Sie sie zurück. Verwenden Sie hierzu die Definition auf Spaltenebene, und lösen Sie mögliche Konflikte zugunsten der Editierversion. Wenn Sie Attribut-Overrides nicht in das Feld "Override", sondern in ein explizites Feld schreiben möchten, können Sie für jedes Kartenprodukt eigene explizite Felder erstellen.

Empfehlungen

Verwandte Themen


7/10/2012