Hallo liebe Experten,
wir haben da ein merwürdiges Problem mit Leserfeldern in lokalen Repliken.
Vielleicht stehen ich und unser Notes-Administrator auch nur auf dem Schlauch.
Das Szenario ist wie folgt:
Der Kunde wünscht, dass in dem zusätzlichen Adressbuch, das wir ihm zur Verfügung stellen, bestimmte Verteilergruppen nur für bestimmte Benutzer sichtbar sind.
Das Adressbuch basiert auf "StdR4PersonalAddressBook Version 8.02". Es gibt eine Editor-Gruppe, die alle Kontakte und Gruppen pflegen kann; diese hat u.a. auch die Rollen [GroupCreator] und [GroupModifier]. Dann gibt es die Gruppe der "normalen" Benutzer, die nur Autor-Zugriff haben und die Rechte Dokumente erstellen, Öffentl. Dokumente schreiben und Dokumente replizieren und kopieren haben. Ausser dem standardmäßigen DocumentAccess-Autorenfeld (welches nur die o.g. Rollen setzt) existieren bisher keine Leser-/Autorenfelder.
Die Benutzer arbeiten in der Regel mit lokalen Repliken, weil kein ständiger Netzwerkzugang möglich ist (Laptops)
Um nun das Ausblenden der Verteilergruppen zu realisieren, habe ich zwei Leserfelder in der Gruppen-Maske hinzugefügt. Das eine berechnet mit der Formel
@If(ZugriffLeser != "";"LocalDomainServers":"[Manager]":"[GroupCreator]":"[GroupModifier]";"")
um die Dokumente immer für die Server,Manager und Editoren offen zu halten.
In das ZugriffLeser-Feld können dann von den Editoren die Benutzer und Gruppen eingefügt werden, die die Verteilegruppen sehen sollen. Standardmäßig bleibt diese Feld leer, das Dokument ist also für alle sichtbar.
Trägt man nun jemand in das ZugriffLeser-Feld ein und repliziert die lokale Replik eines Benutzers, der das Dokument nicht mehr lesen darf, verschwindet das Dokument auch wie erwartet. Umgekehrt kann er es auch sehen, wenn er im Leserfeld steht. Soweit tippi toppi dank konsistenter ACL.
Aber nun kommt das Problem:
Ändert ein Editor in der Server-Replik das Leserfeld des oben ausgeblendeten Gruppen-Dokuments, so dass es leer ist oder der betreffende Benutzer wieder drin steht, erscheint es in der lokalen Replik nicht wieder.
Löscht man die lokale Replik und legt sie neu an, ist das Dokument wieder sichtbar; was aber für die Benutzer nicht praktikabel wäre.
Das Dokument kann so quasi nur einmal verborgen/entfernt werden und danach wird es lokal nie wieder erscheinen.
Nach einer Untersuchung mit NotesPeek konnte man sehen, dass für das "ausgeblendete" Dokument anscheindend ein DeletionStub in der lokalen Replik angelegt wird. In der Anzahl der Dokumente wird es auch nicht mehr gezählt.
Das "Ausblenden" funktioniert - nach ausgiebiger Recherche hier im Forum - auch wie erwartet, nur das "Wiedereinblenden" eben nicht.
Als Workaround hatte ich es erstmal so gelöst, dass bei Änderungen an dem Leserfeld, das Gruppen-Dokument kopiert wird und das bisherige Dokument sofort gelöscht wird. Nicht schön, aber so erscheint es dank neuer ID in der lokalen Replik wieder.
Ist dies ein generelles Problem bei Leserfeldern und lokalen Repliken oder gibt es irgendetwas, was wir übersehen haben ?
Zur Vollständigkeit halber sei noch gesagt, dass das Document-Locking auf der Datenbank aktiviert ist, aber das dürfte ja eigentlich keine Auswirkungen haben.