Autor Thema: Agent > Dokumente aus Ansicht löschen  (Gelesen 1450 mal)

Offline scipio

  • Junior Mitglied
  • **
  • Beiträge: 57
  • Ich liebe dieses Forum!
Agent > Dokumente aus Ansicht löschen
« am: 16.06.05 - 11:09:13 »
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:

Code
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 ...
« Letzte Änderung: 18.06.05 - 16:51:04 von scipio »

Offline scipio

  • Junior Mitglied
  • **
  • Beiträge: 57
  • Ich liebe dieses Forum!
Re: Agent > Dokumente aus Ansicht löschen
« Antwort #1 am: 16.06.05 - 12:30:54 »
Ich habe die Geschichte erst mal über einen kleinen Umweg gelöst. Die oben stehende Schleife löscht nicht, sondern füllt ein verstecktes Feld mit dem Wert 1. Eine neue Ansicht zeigt nur diese Dokumente an, die über die Scripterweiterung

   
Code
Dim vc As NotesViewEntryCollection
	
	Set SourceView = thisdb.GetView( "SelectedDocs")
	Call SourceView.Refresh
	
	Set vc = SourceView.AllEntries
	Call vc.RemoveAll(True)
   

"gekillt" werden.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz