Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Holger am 17.05.02 - 10:00:37

Titel: Probleme mit Agent
Beitrag von: Holger am 17.05.02 - 10:00:37
Hallo

ich brauche mal wieder eure Hilfe, ich habe eine ToDo Datenabank in der alle ToDo's der Mitarbeiter gespeichert werden, mit dem Datum bis wann die Sache erledigt sein muß. Dann läuft in der Nacht ein Agent über die Datenbank der in einem Feld einfügt wie der Status des ToDo's ist. Was nicht funktioniert, ist dass er die überfälligen auf überfällig setzt. ich habe den Agent dann mal auf manuell eingestellt und gestartet und das Problem ist er läuft nicht über die ganze Datenbank sondern ändert nur das erste Dokument das er findet und stoppt dann. Ich habe den Code mal angehängt, vielleicht fällt euch ja was auf was falsch ist an dem Code. Bin für jede Hilfe dankbar.

Option Public
Option Declare


Sub Initialize
     
     Dim xSession As New NotesSession
     Dim xView As NotesView
     Dim xDb As NotesDatabase
     Dim xDoc As NotesDocument
     
     Dim xNow As New NotesDateTime("")
     
     xNow.LSLocalTime = Now
     Set xDb = xSession.CurrentDatabase
     Set xView = xDb.GetView("LookupDateState")
     
    '----Feld DateState Wert zuweisen
     
     Set xDoc = xView.GetFirstdocument()
     
     Do Until xDoc Is Nothing
           
           If xDoc.AssignState(0) = 4 Then
                 xDoc.DateState = "3" ' abgeschlossen
           Elseif xDoc.EndDate(0) < Datevalue(xNow.DateOnly) Then
                 xDoc.DateState = "0" ' überfällig
           Elseif xDoc.StartDate(0) > Datevalue(xNow.DateOnly) Then
                 xDoc.DateState = "2" ' abgeschlossen
           End If
           
           Call xDoc.Save(True, False)
           
           Set xDoc = xView.GetNextDocument(xDoc)
           
     Loop
     
End Sub

Danke Holger
Titel: Re: Probleme mit Agent
Beitrag von: grosses.manitu am 17.05.02 - 11:10:26
Kann es sein, dass das geaenderte Dokument direkt in der View an die letzte Position kommt und daher das .getNextDocument kein neues Dokument mehr findet?
Mache es doch lieber ueber eine Collection. Am besten eine NotesViewEntryCollection. Die kriegst Du mit der Properties .AllEntries der NotesView class.
Titel: Re: Probleme mit Agent
Beitrag von: Holger am 17.05.02 - 13:50:12
Hallo

Danke für den schnellen Response, aber jetzt müsstest Du mir ein bisschen mehr helfen, da ich in Script nur minimale Kenntnisse habe. Was müßte ich denn dann abändern um das Ziel zu erreichen?

Holger
Titel: Re: Probleme mit Agent
Beitrag von: grosses.manitu am 17.05.02 - 15:23:20
Code


Option Public
Option Declare


Sub Initialize

     Dim xSession As New NotesSession
     Dim xView As NotesView
     Dim vc As NotesViewEntryCollection
     Dim ve As NotesViewEntry
     Dim xDb As NotesDatabase
     Dim xDoc As NotesDocument
     
     Dim xNow As New NotesDateTime("")
     
     xNow.LSLocalTime = Now
     Set xDb = xSession.CurrentDatabase
     Set xView = xDb.GetView("LookupDateState")
     
    '----Feld DateState Wert zuweisen
     'collection generieren
     Set vc = xView.AllEntries
     
     
     If Not( vc Is Nothing) Then
           
           If vc.Count > 0 Then
                       
                       Set ve = vc.GetFirstEntry()
                       Set xDoc = ve.Document
                       
                       While Not( xDoc Is Nothing)
                             
                             
                             'dein code normal auf dem xDoc
                             
                             Set ve = vc.GetNextEntry( ve )
                             'hier muesste vielleicht noch ein check kommen, ob ein next entry gefunden wurde
                             Set doc = ve.Document
                       Wend                        
                 Else
                 End If
           Else
           End If
     
     


End Sub


Ist so auf die schnelle geschrieben. Koennte kleine Fehler drin haben.