Domino 9 und frühere Versionen > Entwicklung
Problem mit notesview.getnextdocument(doc)
baumi78:
Hallo liebe Notes Gemeinde,
ich habe mal wieder ein Problem mit dem ich irgendwie nicht weiterkomme.
Ich habe einen Agenten der über die Dokumente einer View läuft, diese Dokumente bearbeitet (wodurch sie aus der View "rausrutschen"). Das ganze sieht stark vereinfacht so aus:
--- Code: ---Set exportView = db.getView("ExportView")
Set doc = exportView.getFirstDocument()
While Not(doc Is Nothing)
Call schreibeDateninRelDB
'Hole das nächste Dokument (vor dem Speichern, sonst rutschen wir aus der Ansicht)
Set tmpDoc1 = exportView.getNextDocument(doc)
'Speichern
Call doc.save(True, True)
'und der nächste bitte
Set doc = tmpDoc1
Wend
--- Ende Code ---
Nun passiert es aber das mein getnextdocument mir manchmal kein Document zurückliefert obwohl definitiv noch Dokumente in der View liegen. Es ist auch kein genaues Schema zu erkennen, nach dem dies mal funktioniert oder auch eben nicht. Die EIgenschaft "TopLevelEntryCount" leifert mir die in meinen Augen korrekte Anzahl der Dokumente. Kennt jemand ähnliche Phänomene?? Wie genau funktioniert das Durchlaufen einer View intern? Kann es sein das die View "kaputt" ist. Ansichtsindizies hab ich schon neu aufgebaut.
Weiß jetzt echt nicht mehr weiter!
Grüße Baumi
Glombi:
Als Workaround kannst Du Dir die Dokumente in eine NotesDocumentCollection holen. Dann müsstest DU sowas machen wie
set dc = view.GetAllDocumentsByKey( "<key>",true )
<key> wäre dann der Wert der ersten sortierten Spalte.
Andreas
TMC:
Mag jetzt vielleicht nicht unbedingt die Lösung zu Deinem Problem sein, aber ein View.Refresh schadet da sicherlich auch nicht (höchstens der Perfomance).
elajen:
Hallo,
beim Durchlaufen von View's mußt darauf achten, das, wenn du Dokumente veränderst, und die Dokumente fliegen aus der Ansicht raus, geht das getnextDocument schief. Daher solltest du mit einer ViewEntryCollection arbeiten. Das ist wie ein Snap-shot vom View.
Gruß von Ekki
baumi78:
Hallo,
vielen Dank für die schnelle Hilfe, ich glaube aber das Problem hat sich relativiert, scheinbar war meine Datenbank gerade irgendwie dabei sich intern "aufzulösen", auch andere Funktionen haben sich merkwürdig verhalten. Da auch ein Fixup keine Besserung brachte habe ich die Datenbank neu angelegt (war in diesem Fall kein Problem) und jetzt tritt auch der Fehler nicht mehr auf!
p.s. zu Ekkis Hinweis: gilt deine Aussage auch dann wenn ich mir das nächste Dokument schon hole bevor ich den "Vorgänger" verändere (wie in meinem Codeschnipsel zu sehen)?
Grüße Baumi
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln