Autor Thema: Dokument in Ansicht per Agent ändern  (Gelesen 1838 mal)

Offline MKnost

  • Junior Mitglied
  • **
  • Beiträge: 58
Dokument in Ansicht per Agent ändern
« am: 20.03.06 - 07:39:19 »
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

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

  • Gast
Re: Dokument in Ansicht per Agent ändern
« Antwort #1 am: 20.03.06 - 07:43:22 »
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
Wenn Du doch nur EIN Dokument ändern willst, wofür dann die Schleife ?  ;D

Offline MKnost

  • Junior Mitglied
  • **
  • Beiträge: 58
Re: Dokument in Ansicht per Agent ändern
« Antwort #2 am: 20.03.06 - 08:00:34 »
 ;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

  • Gast
Re: Dokument in Ansicht per Agent ändern
« Antwort #3 am: 20.03.06 - 08:16:11 »
Ansicht bauen, wo alle Docs mit Datum < heute - 1 drin sind.
Nach jedem doc.save ein view.refresh einbauen.
Anstelle getnext ein getfirst nehmen.

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Dokument in Ansicht per Agent ändern
« Antwort #4 am: 20.03.06 - 09:41:24 »
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

Offline MKnost

  • Junior Mitglied
  • **
  • Beiträge: 58
Re: Dokument in Ansicht per Agent ändern
« Antwort #5 am: 20.03.06 - 09:53:26 »
Ich habs mit view.AutoUpdate = False gelöst, und nach der Schleife ein view.Refresh, das funktioniert...

Danke für Eure Tipps!!!  :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz