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 ...