Wenn im Feld p_Readers wirklich READ_ACCESS_NAMES steht, sieht alles erstmal ordentlich aus. Ich würde aber trotzdem den Agent ergänzen, um sicherzustellen, daß der Agent IMMER die ISReaders property setzt:
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim nextdoc As notesdocument
Dim feldwert As Variant
[b]dim item as NotesItem[/b]
Set db = session.CurrentDatabase
Set dc = db.AllDocuments
Set doc = dc.GetFirstDocument
Do Until doc Is Nothing
Set nextdoc = dc.getnextdocument(doc)
feldwert = doc.GetItemValue("Form")
If feldwert(0) = "Person" Then
doc.p_Readers = "[All]"
[b]set item = doc.GetFirstItem ("p_Readers")
If not (item is nothing) then
item.Readers = true
End If[/b]
Call doc.save(False, False)
End If
Set doc = nextdoc
Loop
End Sub
Wo hast Du Dir denn die Rolle genommen / gegeben ? Die DB hat ja konsistente ACL, ACL-Änderungen sollten also auf dem Administrationsserver erfolgen.
HTH,
Bernhard