Domino 9 und frühere Versionen > Entwicklung

Leser- und Autorenfelder

(1/2) > >>

skywook:
Hallo,
bräuchte mal Hilfe.
In einer Maske ist der Zugriff über Leser- und Autorenfelder definiert. Nun soll der Leser aber ein Feld in der Maske bearbeiten können. Kann ich das irgendwie steuern? Geht das auf Feldebene?

koehlerbv:
Nein, das geht nicht auf Feldebene. Wenn jemand nur Leserechte auf ein Dokument hat, kann er dort prinzipiell überhaupt nichts editieren.
Da verschiedene Verfahren denkbar sind, schreib' mal genauer, was Du erreichen willst.

Bernhard

skywook:
Der Ersteller (Autor) erstellt ein neues Dokument z. B. eine Bestellung und leitet diese an den Leser zur Bearbeitung weiter. Dem Leser ist das inhaltliche bearbeiten untersagt (gesteuert über Leserfeld). Er soll aber die Möglichkeit haben, das Feld "status" von  von "offen" auf "erledigt" zu setzen.

Spalter:
Hallo Skywook,

mir fällt dazu spontan das Stichwort Agent RunOnServer der Notes Agent Klasse ein. Damit sollte das möglich sein. Schau mal in der Hilfe nach

Gruß
Spalter;)

koehlerbv:
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

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln