Domino 9 und frühere Versionen > ND6: Entwicklung
Feldwert in Child-Dokumenten ändern ohne Autorrechte
Driri:
Hallo,
ich bastele gerade an einer Datenbank für unseren Bereich, über die Anträge der Fachbereiche für Arbeiten unserer Abteilung verwaltet werden sollen.
Dabei habe ich jeweils ein Hauptdokument (Antrag) und mehrere zugehörige Antwortdokumente, über die verschiedene Formulare abgebildet werden (z.B. Abnahmeprotokoll).
Das Problem tritt auf, wenn durch eine Aktion eines Anwenders der Workflow ausgelöst wird. Bei einer Änderung im Status müssen das Hauptdokument sowie alle zugehörigen Antworten upgedatet werden. Da nicht jeder Anwender Autorrechte auf alle Dokumente hat, können nicht alle Dokumente upgedatet werden.
Ich bin ein bißchen unentschlossen, wie ich das am besten umsetze. Überlegt habe ich mir jetzt folgende Möglichkeiten :
a) Workflow-Dokument zu jedem Vorgang, in dem z.B. der Status mitgeführt wird
b) Autorenrechte auf alle Dokumente erteilen, Änderungen vornehmen, Rechte wieder entziehen
Problem bei a) ist, daß die Workflow-Dokumente dann für jeden Anwender im Zugriff sein müssen. Das macht Manipulationen einfacher. Zusätzlich muß dann in jedem Dokument immer der Status aus dem WF-Dokument abgefragt werden.
Bei b) bin ich mir nicht sicher, ob das überhaupt so einfach geht. Ich habe eine DocumentCollection aller betroffenen Dokumente. Hier würde ich dann ein temporäres Autorenfeld schießen, die Stafusfelder ändern und das temporäre Autorenfeld wieder entfernen/leeren.
Ich vermute allerdings, daß ein einfaches StampAll hierfür nicht ausreicht, da ja dem Item dann die Properties fehlen, oder ?
Oder überseh ich mal wieder die einfachste Lösung ? Habt ihr eine Empfehlung für mich ?
botschi:
Vielleicht einen Agenten mit der Server-ID unterzeichnet, der im Queryclose aufgerufen wird und das erledigt?
koehlerbv:
Mach doch einen periodischen oder - IMHO geschickter - Agent, der auf neue und geänderte Docs läuft. Ist in Deiner Collection ein Hauptdokument, prüfst auf erforderliche Massnahmen und machst ggf. ein Update der ChildDocs. Da der Agent mit Serverrechten läuft, hast Du kein Problem mehr mit den Rechten des auslösenden Anwenders.
By the way: Mit unzureichenden Rechten kannst Du Autorenfelder niemals aushebeln.
Bernhard
Driri:
Müßte ich dann über UnprocessedDocuments die Dokumente holen, die der Agent verarbeiten soll ?
Mit Manipulation meinte ich nicht, daß die User die Autorenfelder umgehen können, sondern daß der Workflowstatus in dem Szenario dann jederzeit von jedem User geändert werden könnte.
koehlerbv:
Wenn Du de nTyp "Neue/geänderte Docs" meinst: Ja, die bekommst Du auch über Unprocessed documents. Und nicht vergessen, die "danach" auf processed zu setzen ;)
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln