Ich habe das Ganze mal auf die Schnelle getestet und es funktioniert ohne Probleme.
Code im QueryOpendocument der Ansicht:
Sub Queryopendocument(Source As Notesuiview, Continue As Variant)
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim agent As NotesAgent
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Set collection = source.Documents
Set doc = collection.GetFirstDocument
Set agent = db.GetAgent("(Testagent)")
If agent.Run(doc.NoteID) = 0 Then
Messagebox "Agent ran",, "Success"
Else
Messagebox "Agent did not run",, "Failure"
End If
continue = False
End Sub
Die Messagebox habe ich nur zu Testzwecken eingefügt und kann auch weggelassen werden.
Der Agent sieht so aus:
Sub Initialize
Dim s As New NotesSession
Dim agent As NotesAgent
Dim db As NotesDatabase
Dim doc As NotesDocument
Set db = s.CurrentDatabase
Set agent = s.CurrentAgent
Set doc = db.GetDocumentByID(agent.ParameterDocID)
doc.Testfeld = "Bearbeitet"
Call doc.Save(True, False)
End Sub
Als Ziel in den Agenten-Eigenschaften muss "Keines" eingetragen werden. Sonst wird untenstehende Fehlermeldung angezeigt.
Ergänzung:
Nachdem ich mal Notes und Designer neu gestartet habe, kommt nun bei der Zeile agent.run folgende Fehlermeldung:
Im Hintergrund ausgeführter oder eingebetteter Agent verwendet einen nicht unterstützten Auslöser und Suchtyp.
...
continue = False
...
Diese Zeile verhindert das Öffnen des Dokuments (und das macht es auch!).
Da das ein, auf die Schnelle zusammengestrickter Code ohne irgendeine Fehlerbehandlung.
Axel