Autor Thema: Löschen im Agenten  (Gelesen 1621 mal)

Offline Tina

  • Junior Mitglied
  • **
  • Beiträge: 63
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Löschen im Agenten
« am: 27.04.04 - 13:17:45 »
Hallöchen!
Ich hab da so n Problem mit einem Agenten. Der User löscht ein Dokument dieses wird aber in den, nur für Admin sichtbaren, Papierkorb verschoben, also Soft delete.
Nun hab ich mir nen Agenten gebastelt, der alle Doks im Papierkorb, die ein bestimmtes Alter haben löscht. Das erste Dok mit diesen Bedingungen wird gelöscht danach fehlt mir nur der Aufhänger in meiner DocumentCollection.
Könnt ihr mir da vielleicht nen kleinen Denkanstoss geben?

Hier der Code:
Sub Initialize

Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim hilfdoc As NotesDocument
Dim strSuche As String
Dim dateTime As notesdatetime   
   
Set dateTime = New NotesDateTime("")
Set db = session.CurrentDatabase
searchFormula$ = "rpDocStatus = ""Papierkorb"""
Set dc = db.Search(searchFormula$,dateTime,0)    
Set doc = dc.GetFirstDocument

While Not(doc Is Nothing)
   If (doc.rpBisDatum(0) - Today() = 0) Then
      Set hilfdoc = dc.GetNextDocument(doc)
      doc.Remove(1)
   End If
   If (hilfdoc Is Nothing) Then
      Set doc = dc.GetNextDocument(doc)
   Else
      Set doc = hilfdoc
   End If
Wend
End Sub

In der Zeile Set hilfdoc = dc.GetNextDocument(doc) schreibt er nix in die Variable.  ??? ???
Kann er das nicht, oder hab ich da nen Fehler drin?? Ich denk mir mal dass es daran liegt.

Danke schonmal
Gruß Tina.

klaussal

  • Gast
Re:Löschen im Agenten
« Antwort #1 am: 27.04.04 - 13:26:23 »
... versuchs mal mit "getfirstdocument", weil das vorgängerdoc gelöscht wurde, verliert er wohl den bezug zum nächsten.

Offline Tina

  • Junior Mitglied
  • **
  • Beiträge: 63
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Löschen im Agenten
« Antwort #2 am: 27.04.04 - 13:32:22 »
Fängt er dann nicht weider von vorne an??

Was soll?? Ich versuchs mal! Danke für die schnelle Antwort  ;)

Driri

  • Gast
Re:Löschen im Agenten
« Antwort #3 am: 27.04.04 - 13:32:41 »
Eine andere Möglichkeit wäre, die Dokumente erst in einen Ordner zu packen, am Ende des Agents dann alle Dokumente aus dem Ordner zu fischen und zu löschen.

klaussal

  • Gast
Re:Löschen im Agenten
« Antwort #4 am: 27.04.04 - 13:46:02 »
... ich bevorzuge immer dafür eine ansicht. dann kann man/frau sich bei bedarf die docs vorher ansehen, die gelöscht werden sollen.

Offline Tina

  • Junior Mitglied
  • **
  • Beiträge: 63
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Löschen im Agenten
« Antwort #5 am: 27.04.04 - 13:49:39 »
Die Doks stehen alle in der Ansicht Papierkorb. Die können dort entweder vom Admin wiederhergestellt oder schon gelöscht werden. Nach spätestens 90 Tagen sollen die Doks aber in die ewigen Jagdgründe verschwinden! Hab in dem geposteten Skript nur testhalber die Doks von heute gelöscht.

Glombi

  • Gast
Re:Löschen im Agenten
« Antwort #6 am: 27.04.04 - 14:13:59 »
Es geht viel einfacher:

Sub Initialize

Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim hilfdoc As NotesDocument
Dim searchFormula As String
Set db = session.CurrentDatabase
searchFormula = {rpDocStatus = "Papierkorb" & rpBisDatum = @Today}
Set dc = db.Search(searchFormula$,Nothing,0)    
call dc.RemoveAll(true)
End Sub


Ich habe einfach den Searchstring erweitert: Dort die Abfrage, ob das Datum erreicht ist.
Die NotesDocumentCollection hat eine Methode, alle Dokumente zu löschen.
Das NotesDateTime für Search braucht man nicht - besser ist hier sowieso Nothing.

Andreas
« Letzte Änderung: 27.04.04 - 14:16:52 von Glombi »

Offline Tina

  • Junior Mitglied
  • **
  • Beiträge: 63
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Löschen im Agenten
« Antwort #7 am: 27.04.04 - 14:16:20 »
Super DANKE!
Werd ich direkt mal ausprobieren!

Ihr seid echt die besten!! ;D :-*

Offline Tina

  • Junior Mitglied
  • **
  • Beiträge: 63
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Löschen im Agenten
« Antwort #8 am: 27.04.04 - 14:26:41 »
Habs ausprobiert und es funktioniert einwandfrei!
Hab die Searchformula noch ein bisschen umgebogen, um auch andere Zeiträume abzufragen: searchFormula = {rpDocStatus = "Papierkorb" & (rpBisDatum - @Today) = 0} --> wobei die 0 für die Dauer steht!
Nochmal Danke!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz