Examples: GetModifiedDocuments method

This agent gets all modified data documents in the current database since the last time the agent ran. A profile document saves the database end time for each GetModifiedDocuments operation.

Sub Initialize
  Dim session As New NotesSession
  Dim db As NotesDatabase
  Dim dc As NotesDocumentCollection
  Dim doc As NotesDocument
  Dim profile As NotesDocument
  Dim untilTime As NotesDateTime
  Set db = session.CurrentDatabase
  
  ' Check UntilTime in profile document
  Set profile = db.GetProfileDocument("Profile")
  If profile.HasItem("UntilTime") Then
    ' Start processing from UntilTime
    Set untilTime = profile.GetItemValueDateTimeArray("UntilTime")(0)
    Set dc = db.GetModifiedDocuments(untilTime, DBMOD_DOC_DATA)
  Else
    ' First time through get all documents
    Set dc = db.GetModifiedDocuments(, DBMOD_DOC_DATA)
  End If
  
  If dc.Count > 0 Then
    ' Display LastModified and Subject from each document
    Set doc = dc.GetFirstDocument
    While Not(doc Is Nothing)
      Messagebox doc.GetItemValue("Subject")(0),, doc.LastModified
      Set doc = dc.GetNextDocument(doc)
    Wend
  Else
    ' If nothing modified since last time
    If profile.HasItem("UntilTime") Then
      Messagebox "No documents modified",, untilTime.LocalTime
    Else
      Messagebox "No documents modified",, "Beginning"
    End If
  End If
  
  ' Write UntilTime back to profile document
  Call profile.ReplaceItemValue("UntilTime", dc.UntilTime)
  Call profile.Save(True, True, True)
End Sub