Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: skywook am 24.08.04 - 11:43:30
-
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?
-
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
-
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.
-
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;)
-
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
-
Ergänzung zu Bernhards Ausführung :
Für das Ändern von Feldern bräuchte man nicht mal Agents, dafür reicht ein SmartIcon mit entsprechender Formel.
-
Hallo Bernhard,
habe auch schon mit zugriffskontrollierten Abschnitten hide-whens bzw. duplizierten Feldern gearbeitet. Wirklich sicher ist das nicht - man kann die Felder auch per Smart Icon ändern.
Gut, das schafft nicht jeder Feld-Wald und Wiesen-Nutzer, aber einige wiegen sich dann schon immer in Sicherheit.
Ich hab diese Run OnServer - Geschichte mal in Zusammenhang mit dem Adreßbuch verwendet. Dadurch konnte ein bestimmtes Feld geändert werden durch Nutzer mit nur Lese-Rechten, war aber nicht trivial.
Gruß
Spalter 8)