Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: hupfi am 13.03.09 - 09:57:36

Titel: NotesViewEntry.Document ist leer
Beitrag von: hupfi am 13.03.09 - 09:57:36
Hallo Notesler,

ich habe ein Problem mit einer NotesViewEntry Collection.
Ich lade alle Einträge einer Ansicht in eine NotesViewEntryCollection. Danach laufe ich in einer Schleife alle einzelnen Einträge durch und hole mir über das NotesViewEntry Objekt das zugehörige Dokument. Dies funktioniert ganz gut. Bis ich an ein bestimmten Eintrag gelange. Dort ist die Eingenschaft NotesViewEntry.Document leer.

Warum ist das so? Wie kann ich das verhindern?

Hier der gekürzte Code

Code
Set View = db.GetView("Viename")
Set EntryCol = View.AllEntries
Set ViewEntry = EntryCol.GetFirstEntry

For i = 1 To PersEntryCol.Count
	Set doc = ViewEntry.Document
		
	Set ViewEntry = EntryCol.GetNextEntry( ViewEntry )
		
Next

Gruß hupfi
Titel: Re: NotesViewEntry.Document ist leer
Beitrag von: Pir0x am 13.03.09 - 10:12:21
du kannst doch einfach mittels einer While-Schleife eine Abfrage machen ob der Eintrag nicht leer ist und solange das der Fall ist wird deine Schleife halt dann durchlaufen

Code
Set View = db.GetView("Viename")
Set EntryCol = View.AllEntries
Set ViewEntry = EntryCol.GetFirstEntry
Set doc = ViewEntry.Document


While Not(doc Is Nothing)
		
	Set ViewEntry = EntryCol.GetNextEntry( ViewEntry )
	Set doc = ViewEntry.Document
Next

hoffe ich konnt dir helfen
Titel: Re: NotesViewEntry.Document ist leer
Beitrag von: koehlerbv am 13.03.09 - 10:20:57
Eine While-Schleife ändert da überhaupt nichts ...

Die View hat einen Schlag und enthält einen Verweis auf ein gelöschtes oder invalides Dokument. Mit sowas muss man immer rechnen (auch wenn es selten vorkommt).

Bernhard
Titel: Re: NotesViewEntry.Document ist leer
Beitrag von: m3 am 13.03.09 - 10:31:32
Du willst die Attribute

IsCategory
IsConflict
IsDocument
IsTotal
IsValid

des ViewEntry Objektes ansehen.
Titel: Re: NotesViewEntry.Document ist leer
Beitrag von: koehlerbv am 13.03.09 - 10:38:48
Wobei eine Prüfung auf NotesViewEntry.Document Is Nothing schon ausreicht - wenn das zutrifft, sind sowieso alle Messen bereits gelesen.

Den Umstand sollte man dann aber protokollieren und / oder eine Notifikation an den lieben Admin senden - diese View bedarf ja nun gesonderter Pflege.

Bernhard
Titel: Re: NotesViewEntry.Document ist leer
Beitrag von: hupfi am 13.03.09 - 10:55:50
Vielen Dank schon mal für Eure Antworten.
Ich werde mich jetzt mal auf die Fehlersuche begeben. Ob es am Dokument oder der Ansicht liegt.
Titel: Re: NotesViewEntry.Document ist leer
Beitrag von: BigWim am 13.03.09 - 12:49:40
also, was ich leider viel zu oft falsch mache:

ich habe eine sortierte Ansicht. In der Schleife passiert in der Regel etwas, was dazu führt, dass das Dokument verändert und gespeichert wird.

Und wenn diese Änderung dazu führt, dass die Ansicht neu sortiert wird, stimmt die DocCollection nicht mehr mit der tatsächlichen Darstellung überein.

Ob das bei NotesViewEntryCollection auch so ist, weiß ich nicht, da ich dass (noch) nicht verwende, aber bei view.GetFirstDocument und view.GetNextDocument ist das definitiv so!

Markus
Titel: Re: NotesViewEntry.Document ist leer
Beitrag von: koehlerbv am 13.03.09 - 12:59:29
Das lässt sich ja leicht abstellen durch das entsprechende Setzen der AutoUpdate-Property. Da das Problem hier aber offensichtlich anders liegt, kann das hier nicht helfen.

Bernhard
Titel: Re: NotesViewEntry.Document ist leer
Beitrag von: hupfi am 13.03.09 - 14:15:30
Die Ansicht war kaputt. Nach abspeicher und Neuaufbau der Ansicht funktioniert alles.
Baue mir jetzt ein Error-Handling in meinem Agent, dass ich sofort informiert werden, wenn dies
weider passiert.

Danke für Eure Hilfe.


Gruß Hupfi