Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: HJPSoft am 13.01.03 - 10:29:43
-
Hallo Forum,
bei dem Auftrag, einen Feldwert innerhalb vieler Dokumente permanent zu ändern erhalte ich den Fehler: Notes Error: Eintrag im Index nicht gefunden(Ansicht)
Der Code im Agent sieht so aus, der hervorgehobene Text löst den Fehler aus: ???
Sub Initialize
Dim wert As String
Dim s As New NotesSession
Dim db As NotesDatabase
Set db = s.CurrentDatabase
Dim v As NotesView
Set v = db.GetView("Einsatz\Sitreps\ISAF")
Dim doc As NotesDocument
Set doc = v.GetFirstDocument()
Do While Not (doc Is Nothing)
Call doc.ReplaceItemValue("DokChar", "Sitreps Termez")
Call doc.Save(True,True)
Set doc = v.GetNextDocument(doc)
Loop
End Sub
Wer kann helfen, oder liege ich völlig daneben?
Ersatzcode willkommen.
Danke
Hans
-
Kann es sein, daß das geänderte Dokument nach der Aktualisierung aus der Ansicht herausfällt ??
Ansonsten ist der Code OK.
eknori
-
Danke Eknori,
in der Tat fällt das Dokument aus dieser Ansicht heraus. Ich nehme an, ich muss mir eine Ansicht erzeugen, aus der geänderte Dokumente nicht herausfallen.
Danke
Hans
-
genau, sonst wuselt es dir den Index durcheinander mit dem bekannten Erfolg.
-
oder anstelle von "getnextdocument" wieder ein "getfirstdocument"
-
MAHLZEIT !
verstehe nicht, warum Du die Docs nicht in eine DocCollection zusammenliest und diese durcharbeitest - geht nicht nur schneller, belastet den Server nicht so(dadurch das Du nicht in die View "reingreifen" mußt) und das Thema Extra-Ansicht hat sich auch erledigt.
wäre nur so ne Idee
-
Hi,
versuchs doch mal so:
Sub Initialize
Dim wert As String
Dim s As New NotesSession
Dim db As NotesDatabase
Dim tmpdoc As NotesDocument
Set db = s.CurrentDatabase
Dim v As NotesView
Set v = db.GetView("Einsatz\Sitreps\ISAF")
Dim doc As NotesDocument
Set doc = v.GetFirstDocument()
Do While Not (doc Is Nothing)
Set tmpdoc = doc
Call doc.ReplaceItemValue("DokChar", "Sitreps Termez")
Call doc.Save(True,True)
Set doc = v.GetNextDocument(tmpdoc)
Loop
Axel
End Sub
-
Hallo @All,
Danke für die Unterstützung.
ich habe mich für die Lösung der DocumentCollection entschieden und es funktioniert. Komplilziert ist die Gestaltung des Suchmusters, aber mit etwas Fleiß kommt man zu einer Lösung.
Die Realisierung mittels eines Schattendokuments ist äußerst interessant und schon in meine Repository gewandert.
Noch mal
Vielen Dank
Hans
-
H@llo HJPSoft !
wieso Suchschlüssel ? ich dachte in der View können nur Dokumente stehen, die auch bearbeitet werden sollen, dann wäre der einfachste Weg, an erster Stelle eine Spalte einzurichten, sortiert(der Suche wegen) die für jedes Dokument eine "1" zeigt, somit wäre der Suchschlüssel dann auch eine 1 und Du bekommst ohne großes TamTam alle Docs der Ansicht in die Collection.
aber warum denn einfach, wenn es auch kompliziert geht ? ;-)
-
Wenn bei mir ein Doc aus nach der Bearbeitung aus einer Ansicht rausfällt schleif ich die Ansicht von hinten durch.
Set doc = v.GetLastDocument()
Do While Not (doc Is Nothing)
Call doc.ReplaceItemValue("DokChar", "Sitreps Termez")
Call doc.Save(True,True)
Set doc = v.GetLastDocument()
Loop
lg
-rar