Ich habe folgenden Agenten, der für alle ausgewählten Dokumente läuft. Dazu existiert eine Ansicht sortiert nach dem Feld F1.
FIELD F1 := "neu";
_Values := @DbLookup("" : "NoCache"; ""; "vaTestDbLookUp"; "neu"; 2);
@Prompt([Ok];"";@Text(@Elements(_Values)));
SELECT @All
der Agent modifiziert die Dokumente, so dass mit dem @DbLookup jedes mal in der Ansicht ein Dokument mehr erscheint.
@DbLookUp liefert aber immer nur die zu Beginn vorhandene Anzahl Dokumente.
Wenn z. B. vor Start des Agenten 2 Dokumente mit Feld F1 = "neu" vorhanden waren, liefert mir @DbLookUp immer nur diese 2 Dokumente obwohl durch jeden Durchlauf ein Dokument mit dem Feld F1 = "neu" mehr entsteht, also müsste 3, 4 usw. Dokumente geliefert werden.
Irgendwie sind die geänderten Dokumente anscheinend noch nicht in der Ansicht oder der Cache funktioniert nicht. Auch die Angabe 'ReCache' statt 'NoCache' ändert nichts daran.
Wenn ich den gleichen Vorgang in LotusScript wie folgt nachstelle funktioniert es:
Dim session As New NotesSession
Dim dbThis As NotesDatabase
Dim db As NotesDatabase
Dim view As NotesView
Dim dc As NotesDocumentCollection
Dim dc2 As NotesDocumentCollection
Dim doc As NotesDocument
Set dbThis = session.CurrentDatabase
Set view = dbThis.GetView("vaTestDbLookUp")
Set dc = dbThis.UnprocessedDocuments
Set doc = dc.GetFirstDocument
While Not (doc Is Nothing)
If doc.IsValid And doc.UniversalID <> "" Then
Call doc.ReplaceItemValue("F1", "neu")
Call doc.Save(True, False)
Set dc2 = view.GetAllDocumentsByKey("neu", True)
MsgBox dc2.Count
End If
Set doc = dc.GetNextDocument(doc)
Wend
O. g. Agent ist nur ein stark abgerüstetes Beispiel.
Gibt es irgend eine Idee dazu?