Das mit NotesAgent.RunOnServer ist sicherlich eine Variante, aber wegen der erforderlichen Werteübergabe auch nicht ganz trivial. Wesentliche Einschränkung: In einer lokalen Replik hat man wenig Vergnügen ...
Weitere Varianten:
Alle User haben mindestens Autorrechte. Felder, die nicht (für alle) bearbeitbar sein sollen, werden in einen zugriffskontrollierten Abschnitt gesteckt
oder
Felder, die nicht alle User bearbeiten dürfen, existieren zweimal (entsprechend mit hide-whens versehen): Einmal als berechnet ztur Anzeige, einmal editierbar.
Wichtig für beide Verfahren:
- Konsistente ACL
- User dürfen keine Agents erstellen (damit sie nicht durch die Hintertür Daten manipulieren können).
Sicher ist dieses Verfahren aber nicht, da User sich ja auch eine eigene DB für Agents schnitzen könnten.
Weitere Möglichkeiten:
- Statusänderung zieht die Erstellung eines ResponseDocs nach sich, welches entsprechend ausgewertet wird für Anzeigezwecke. Ggf. kann dann ein periodischer Agent auchwieder aufräumen (Statuswert ins HauptDoc übernehmen, TochterDoc löschen).
- Statusänderung wird an die DB selbst gemailt und von einem entsprechenden server based agent ausgewertet.
To be continued
Bernhard