Domino 9 und frühere Versionen > Entwicklung
Probleme mit Agent
(1/1)
Holger:
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
grosses.manitu:
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.
Holger:
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
grosses.manitu:
--- 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
--- Ende Code ---
Ist so auf die schnelle geschrieben. Koennte kleine Fehler drin haben.
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln