LotusScript-Dokumentvergleich

Replizierkonflikte vermeiden

Zur Vermeidung von Replizierkonflikten stehen Ihnen verschiedene Methoden zur Auswahl. Eine Maßnahme, die generell für jede Datenbank empfehlenswert ist, ist die Einschränkung der Benutzerrechte in der Datenbank auf das Zugriffslevel Author und die Verwendung von Autorenfeldern in den Dokumenten. Damit können Sie verhindern, dass Benutzer Dokumente anderer Benutzer bearbeiten.

Des Weiteren lassen sich durch die Einrichtung der seit Version 6 möglichen Sperrung von Dokumenten ebenfalls Replizierkonflikte vermeiden. Aus Entwicklersicht hat man zwei Optionen:

  • Die Verwendung der Versionskontrolle erstellt bei der Bearbeitung und Speicherung automatisch neue Dokumente. Wählen Sie dazu in der Infobox der Maske auf dem Register Form Info im BereichVersions im Feld Versioning einen der Einträge New versions become responses oder New versions become siblings und im Feld Versionen erstellen den Eintrag Automatic/ File, Save. Tabelle 1 listet alle möglichen Einstellungen für die beiden Felder zur Versionskontrolle auf. Eine zusätzliche Möglichkeit ist die Verwendung eines berechneten Textfeldes mit dem Namen $VersionsOpt in der Maske. Wollen Sie Replizierkonflikte generell ausschließen, können Sie für dieses Feld nur die Werte 2 oder 6 verwenden (siehe Tabelle 2).

  • Ist die Verwendung der Versionskontrolle in Ihrer Anwendung nicht erwünscht, können Sie über die Maskeneigenschaft Conflict Handling versuchen, das Auftreten von Replizierkonflikten zu verhindern oder zumindest stark zu minimieren. Das Feld Conflict Handling befindet sich ebenfalls auf dem Register Form Info des Eigenschaftsfensters der Maske (Bild 2). Folgende Einstellungen sind für diese Eigenschaft möglich: Create Conflicts: In der Standardeinstellung werden nach den oben erläuterten Regeln Konfliktdokumente erstellt.

  • Merge Conflicts:Werden in zwei Repliken der Datenbank verschiedene Felder eines Dokuments geändert, wird ein separates Dokument erstellt. Bei Änderung des identischen Feldes entsteht ein Replizierkonflikt.

  • Merge / No Conflicts: Werden in zwei Repliken der Datenbank verschiedene Felder eines Dokuments geändert, werden alle Werte in einem Dokument gespeichert. Bei Änderung des identischen Feldes wird der aktuellere Wert übernommen.

  • Do Not Create Conflicts: In diesem Fall wird das aktuellere Dokument verwendet. Das ältere wird gelöscht, die dort gespeicherten abweichenden Werte gehen verloren.

Tabelle 1: Die möglichen Einstellungen für die Felder zur Versionskontrolle

Feld_Wert

Wirkung

Versioning

New versions
become responses

Das Originaldokument steht in der Ansicht an der Spitze der Hierarchie. Bearbeitete Versionen werden als Antwortdokumente untergeordnet. Mit dieser Einstellung vermeiden Sie Replizierkonflikte.

Prior versions
become responses

Bei dieser Einstellung steht immer die zuletzt gespeicherte Version ganz oben, das ältere Dokument wird untergeordnet. Damit können wiederum Replizierkonflikte auftreten.

New versions
become siblings

Mit diesem Eintrag werden ebenfalls become siblings Replizierkonflikte konsequent verhindert. Bei jeder Bearbeitung und Speicherung eines Dokuments wird ein neues Dokument erstellt. Es gibt nur Haupt- und keine Antwortdokumente.

Create versions

Manual/File,
New Version

Bei Auswahl dieser Einstellung überlassen Sie dem Benutzer ob beim Speichern eines bearbeiteten Dokuments ein neues Dokument erstellt wird. Damit können wiederum Replizierkonflikte auftreten.

Atomatic/File, Save

Durch diesen Eintrag erzwingen Sie die Erstellung neuer Dokumente. Replizierkonflikte können so in Verbindung verhindert werden.

Tabelle 2: Die Bedeutung der Werte des Feldes $VersionOpt

Wert des Feldes $VersionOpt

Entspricht den Eigenschaften

0

Nicht gesetzt, keine Versionskontrolle

1

New versions become responses und
Manual/File, New Version

2

New versions become responses und
Automatic/File, Save

3

Prior versions become responses und
Manual/File, New Version

4

Prior versions become responses und
Automatic/File, Save

5

New versions become siblings und
Manual/File, New Version

6

New versions become siblings und
Automatic/File, Save

Bild 2: Die Einstellungen zur Behandlung von Replikationskonflikten.
Bild 2: Die Einstellungen zur Behandlung von Replikationskonflikten.

Das Mischen der Werte in einem Dokument kann von Vorteil sein, birgt jedoch auch das Risiko, dass so genannte Geisterdokumente entstehen. Wird zum Beispiel in einer Replik von einer Person der Name, in der anderen Replik jedoch die Adresse geändert, ist nach der Replizierung ein Personeneintrag mit einem neuen Namen und der neuen Adresse vorhanden, den es so in der Realität nicht gibt.