The method UpdateProcessedDoc in NotesSession class can be used to mark a document as already processed by an agent in order to prevent it from being processed again by the same agent or may not be used on a specific document in the event of some condition for which you wants it to be processed again the next time the agent will run.
The agent is scheduled, usually it processes documents in a NotesDocumentCollection returned by UnprocessedDocuments, or UnprocessedFTSearchRange UnprocessedFTSearch method.
Here is an example:
Option Public
Option Declare
Sub Initialize
Dim s As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim saved As Boolean
Set db = s.Currentdatabase
' you can use Unprocesseddocuments, UnprocessedFTSearch or UnprocessedFTSearchRange
Set dc = db.Unprocesseddocuments
Set doc = dc.Getfirstdocument()
While Not(doc Is nothing)
call ProcessDocument(doc)
saved = doc.Save(false, false, false)
' the condition is if the document is saved but you use other conditions
If saved Then
' well done!
Call s.UpdateProcessedDoc(doc)
Else
' I'll process this document the next time
End If
Set doc = dc.Getnextdocument(doc)
Wend
End Sub
Sub ProcessDocument(doc As NotesDocument)
' some stuff here
Call doc.Replaceitemvalue("SomeField", "SomeValue")
End Sub

Leave a Reply