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.
Feld_Wert |
Wirkung |
Versioning |
|
New versions |
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 |
Bei dieser Einstellung steht immer die zuletzt gespeicherte Version ganz oben, das ältere Dokument wird untergeordnet. Damit können wiederum Replizierkonflikte auftreten. |
New versions |
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, |
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. |
Wert des Feldes $VersionOpt |
Entspricht den Eigenschaften |
0 |
Nicht gesetzt, keine Versionskontrolle |
1 |
New versions become responses und |
2 |
New versions become responses und |
3 |
Prior versions become responses und |
4 |
Prior versions become responses und |
5 |
New versions become siblings und |
6 |
New versions become siblings und |
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.