Hallo zusammen,
ich habe eine Ansicht (DeleteDocs), in der Dokumente angezeigt werden, die älter sind als das heutige Datum. Ein periodischer Agent soll nun alle Dokumente löschen, die länger als X Tage abgelaufen sind (X wird in einem Profildokument hinterlegt, zZt 30).
Mein Agent sieht so aus:
Sub Initialize
Dim vTermin As Variant
Dim intTageNachAblauf As Integer
Dim thisdb As NotesDatabase
Dim Session As New NotesSession
Dim doc As NotesDocument
Dim killdoc As NotesDocument
Dim SourceView As NotesView
Set thisdb = session.CurrentDatabase
Set SourceView = thisdb.GetView( "DeleteDocs")
Call SourceView.Refresh
'Tage nach Ablauf aus ProfilDok holen
Call GetProfilwerte("GlobalsDelete","","") 'Rückgabe in die Variable jb_key
'Das erste Dokument der Ansicht holen
Set doc = SourceView.GetFirstDocument
While Not (doc Is Nothing)
Set killdoc = doc
Set doc = SourceView.GetNextDocument (killdoc)
vTermin = killdoc.EndDatum
intTageNachAblauf = Abs(vTermin(0) - Now())
'Alle Dokumente löschen, die größer als der Wert des Profildokumentes sind
If intTageNachAblauf > jb_key Then
Call killdoc.Remove(False)
End If
Wend 'While Not (doc Is Nothing)
End Sub
In der Ansicht stehen folgende Werte:
Dok 1 (45 Tage abgelaufen)
Dok 2 (45 Tage abgelaufen)
Dok 3 (45 Tage abgelaufen)
Dok 4 (45 Tage abgelaufen)
Dok 5 (45 Tage abgelaufen)
Dok 6 (2 Tage abgelaufen)
Dachte eigentlich, der Agent löscht alle bis auf Dok 6. Nachdem der Agent seine Arbeit erledigt hat:
Dok 3 (45 Tage abgelaufen)
Dok 5 (45 Tage abgelaufen)
Dok 6 (2 Tage abgelaufen)
Warum fasst er die Dokumente 3 & 5 nicht an? Wo mache ich den Denkfehler im Code?
Danke schon mal ...