Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Grmpf am 05.02.07 - 14:24:26

Titel: dokument existiert, wird aber nicht gefunden.
Beitrag von: Grmpf am 05.02.07 - 14:24:26
hallo,


folgendes problem :

in einer dokumentenabfrage eines agenten(manueller start) wird von x documenten in der ausgewählten Ansicht immer nur die erste hälfte der dokumente gefunden(fehlermeldung : Object variable not set).

zB. bei 4 dokumenten werden nur die ersten 2 gefunden . bei 8 die ersten 4.


-ansicht ist sortiert
-zaehler sind nach überprüfung richtig, und werden nirgendwo anders im code geändert
-alle notwendigen variablen sind deklariert
-Ansicht.EntryCount gibt die korrekte Anzahl der dokumente zurück!!

Habe alles was ich weiß probiert, und mir sämtliche variablen ausgeben lassen, komm aber nicht drauf :(
 


BEISPIEL : in der ansicht "viewxyz" befinden sich 4 dokumente
die variablen inhalte habe ich entsprechend im codebeispiel mit "//" abgetrennt.

Code
...
Set view = db.GetView("viewxyz")

zaehl = view.EntryCount //Wert = 4

For i=1 To zaehl
Set doc = view.GetNthDocument(i)

// Sobald auf den inhalt eines dokuments zugegriffen wird welches
// die hälfte von "zaehl" überschreitet kommt --> Object Variable Not Set
// in diesem Fall bei i = 3 und i = 4 
// view.EntryCount gibt korrekterweise 4 zurück.....

If Not doc Is Nothing Then

     Messagebox "Doc is not Nothing"
     
     //änderungen/speicherung am aktuellem doc
     ...


End If

Next
...



ich hoffe ich konnte mein problem ordentlich beschreiben;)


freue mich über jeden hinweis !


danke im vorraus
matze

Titel: Re: dokument existiert, wird aber nicht gefunden.
Beitrag von: DerAndre am 05.02.07 - 14:32:29
Hast Du dir mal angeschaut wie GetNthDocument funktioniert?

Warum machst Du nicht

Set doc = view.GetFirstDocument

while not doc is nothing

 ...
 ...
 ...

 set doc = view.GetNextDocument(doc)


wend
Titel: Re: dokument existiert, wird aber nicht gefunden.
Beitrag von: Grmpf am 05.02.07 - 14:37:51
hab ich schon probiert.

GetFirst - und Getnextdocument..... verursachen die gleichen fehler , sobald auf das 3. dokument (im obigen beispiel) zugegriffen werden soll..

EDIT : es sieht so aus , als ob das document an der stelle einfach nicht existiert für notes...
Titel: Re: dokument existiert, wird aber nicht gefunden.
Beitrag von: DerAndre am 05.02.07 - 14:39:57
Dann sag ich mal:

Bau ein Errorhandle ein um die Stelle zumindest erstmal einzugrenzen.
Titel: Re: dokument existiert, wird aber nicht gefunden.
Beitrag von: koehlerbv am 05.02.07 - 14:41:30
Ändert sich die Position des Dokuments in der Ansicht durch Änderung am Dokument selbst?

Bernhard

PS: Bitte verwende Grossbuchstaben - das lässt sich dann leichter lesen.
Titel: Re: dokument existiert, wird aber nicht gefunden.
Beitrag von: Grmpf am 05.02.07 - 14:52:39
der fehler tritt genau an der stelle meines kommentars(im obigen codebeispiel) auf, sobald ich auf eins der dokumenten - inhalte zugreifen will ..
zB. Messagebox Cstr(doc.GetItemValue("Title")(0))     // ist bei jedem der 4 docs befüllt!


die fehlermeldung tritt ja deswegen auf, weil immer die dokumente der sortierten ansicht nicht gefunden werden welche die erste hälfte überschreiten..

bei 4 documenten eben --> doc 3 und doc 4 in der sortierreihenfolge


... auf doc 1 und doc 2 kann ganz normal zugegriffen werden.
Titel: Re: dokument existiert, wird aber nicht gefunden.
Beitrag von: Grmpf am 05.02.07 - 14:57:12
Entschuldigung. Dein Post kam während ich am nächsten geschrieben habe.

Ok . Ich versuche mich an Groß-/Kleinschreibung zu halten ;)


Am Aktuellem Dokument wird tatsächlich eine Statusänderung durchgeführt, wodurch es aus dieser Ansicht rausfällt. Hatte mir auch schon überlegt, das das der Fehler sein könnte...

Titel: Re: dokument existiert, wird aber nicht gefunden.
Beitrag von: DerAndre am 05.02.07 - 14:58:04
Sorry, mit meinen Kaninchenaugen überlesen.
Da wäre dann noch der Hinweis von Bernhard interessant.
Titel: Re: dokument existiert, wird aber nicht gefunden.
Beitrag von: DerAndre am 05.02.07 - 15:01:33
Schonmal hinten angefangen?  ;D
Titel: Re: dokument existiert, wird aber nicht gefunden.
Beitrag von: koehlerbv am 05.02.07 - 15:07:26
Das ist dann der sogenannte ADT-Fehler. GetNextDocument bezieht sich immer in Bezug auf das Dokument, was gerade instantiiert ist.
Du musst daher entweder ein AutoUpdate der View ausschalten oder - einfacher - das GetNextDocument gleich am Anfang machen und das gearde instantiierte Dokument vorher in eine weitere Instanz packen:
Set docToProcess = doc
Set doc = view.GetNextDocument (docToProcess)
und jetzt erst ändern und speichern.

Wenn allerdings auf diese Weise sowieso ALLE Dokumente aus der Ansicht fallen, dann kannst Du ja auch immer mit GetFirstDocument oder GetLastDocument arbeiten, bis dieses Nothing ist.
Oder eine Collection bilden und darüber ein StampAll ausführen  ;)

Bernhard
Titel: Re: dokument existiert, wird aber nicht gefunden.
Beitrag von: Grmpf am 05.02.07 - 15:31:01
Danke, das hat mir schon den Wink in die richtige Richtung gegeben :)

Ich hab das jetzt dadurch gelößt bei einer Änderung eines Dokuments entsprechend der Zähler aktualisiert wird, und so nicht mehr ins Leere zeigt.


grüße
matze
Titel: Re: dokument existiert, wird aber nicht gefunden.
Beitrag von: koehlerbv am 05.02.07 - 15:37:17
Dann arbeitest Du immer noch mit GetNthDocument? Das wäre die denkbar unperformanteste Lösung.
Das mit der Zählermanipulation halte ich für unsicher.

Bernhard