Domino 9 und frühere Versionen > Entwicklung
Dokument in Ansicht per Agent ändern
MKnost:
Moinsen allesamt,
Ich hab mal wieder ein Problem:
In einer Ansicht möchte ich ein Dok per Agent ändern, und zwar anhand einer Bedingung in einer Spalte mit einem Datum. Der Code dazu sieht so aus:
--- Code: ---Sub Initialize
Dim sess As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim Datum As String
Datum = Today() -1
Set db = sess.CurrentDatabase
Set view = db.GetView( "Urlaub\alle Urlaubsanträge" )
Set doc = view.GetFirstDocument
While Not(doc Is Nothing)
Forall bisdate In doc.GetItemValue("wBis")
If Datevalue(bisdate) < Datevalue(Datum) Then
doc.Archiv = "1"
Call doc.Save( False, True )
End If
End Forall
Set doc = view.GetNextDocument(doc)
Wend
End Sub
--- Ende Code ---
Es wird auch ein Dokument geändert, aber dann kommt ne Fehlermeldung "Eintrag im Index nicht gefunden (Urlaub\alle Urlaubsanträge)"
Greift er dann nochmal auf das geänderte Dok zu??? Und wie kann ich das beheben?
Danke für Hinweise
Grüsse Micha
klaussal:
Anscheinend fällt durch <doc.Archiv = "1"> das Dok aus der Ansicht heraus. Dadurch kann der Getnext natürlich nicht funktionieren.
--- Zitat ---In einer Ansicht möchte ich ein Dok per Agent ändern
--- Ende Zitat ---
Wenn Du doch nur EIN Dokument ändern willst, wofür dann die Schleife ? ;D
MKnost:
;D Nee, das wär ja wirklich wie Perlen vor die Säue werfen....
Ich möchte alle Doks in der Ansicht mit einem Datum kleiner als Heute-1 ändern, daher die Schleife....
Kann ich das mit dem GetNext irgendwie anders lösen?
klaussal:
Ansicht bauen, wo alle Docs mit Datum < heute - 1 drin sind.
Nach jedem doc.save ein view.refresh einbauen.
Anstelle getnext ein getfirst nehmen.
ascabg:
Hi,
Es koennte aber auch helfen, die automatische Aktualisierung der Ansicht auszuschalten.
view.AutoUpdate = False
oder eine Collection aller Dokumente der Ansicht
==> siehe view.AllEntries
Andreas
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln