Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: werfi am 24.09.12 - 14:33:28

Titel: [gelöst] User defined Error 4207 in Agent
Beitrag von: werfi am 24.09.12 - 14:33:28
Hi,

ich arbeite mich gerade in LS ein und erstelle einen eigentlich simplen Agenten zum Löschen von Dokumenten.
In der Schleife fällt der Agent beim holen des zweiten Dokuments aus die Nase.

-- Code --
Set db = s.CurrentDatabase
Set view = db.GetView("$ReplyStat")
view.AutoUpdate = False
z = 0
   
Set doc = view.GetFirstDocument
   
Do While Not doc Is Nothing
   If doc.form (0) = "OutOfOfficeStat" Then
      vDate = doc.Created
      If vDate < Today () Then
         z = z +1
         Print "Lösche Dokument Nr. " & z & "  - Benutzer: " & doc.user (0)
         Call doc.Remove (True)
      End If         
   End If
   Set doc = view.GetNextDocument (doc)
Loop
-- Ende Code ---

In der Zeile "Set doc = view.GetNextDocument (doc)" bekomme ich ein "User defined Error 4207",  -> lsERR_NOTES_NEED_ADT =  4207.

Kann mir jemand sagen, was ich hier falsch mache?

Danke & Gruß
Markus
Titel: Re: User defined Error 4207 in Agent
Beitrag von: Tode am 24.09.12 - 14:38:17
Ja, Du ziehst Dir selbst Deine Referenz unter dem Hintern weg....

Hier:
Set doc = view.GetNextDocument (doc)
Referenzierst Du auf ein Doc, das bereits gelöscht wurde.

Also:
Code
Set db = s.CurrentDatabase
Set view = db.GetView("$ReplyStat")
view.AutoUpdate = False
z = 0
   
Set doc = view.GetFirstDocument
   
Do While Not doc Is Nothing
   Set docNext = view.GetNextDocument (doc)
   If doc.form (0) = "OutOfOfficeStat" Then
      vDate = doc.Created
      If vDate < Today () Then
         z = z +1
         Print "Lösche Dokument Nr. " & z & "  - Benutzer: " & doc.user (0)
         Call doc.Remove (True)
      End If         
   End If
   Set doc = docNext
Loop
Titel: Re: User defined Error 4207 in Agent
Beitrag von: werfi am 24.09.12 - 14:57:46
Danke!
Es hat funktioniert!