Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Gravedigger am 16.01.04 - 13:29:46

Titel: Fehlermeldung: "Document is not from this collection"
Beitrag von: Gravedigger am 16.01.04 - 13:29:46
Hallo,

kann jemand was mit der Fehlermeldung "Document is not from this collection" anfangen.

Der Fehler tritt bei folgenden Codezeilen auf:

>>>START<<<
Set appldoc = appldc.GetFirstDocument
 While Not appldoc Is Nothing
  If(appldoc.fdDeleted(0) <> "True") Then
   Call logEntry(4, "Anwendungsdokument noch nicht gelöscht => Löschantrang")
   appldoc.fdStatus = "Löschantrag"
   appldoc.fdDeleteDateRequest = Now
   Call appldoc.save(True, True)
   Call mailApplDelete(appldoc)     <- Fehler anscheinend hier
  End If
 Set appldoc = appldc.GetNextDocument(appldoc)
Wend
>>>ENDE<<<


Danke

Max
Titel: Re:Fehlermeldung: "Document is not from this collection"
Beitrag von: animate am 16.01.04 - 13:41:33
den Fehler hatte ich mal nach der Umstellung von 4.6 auf R5.
ich habe die DocumentCollection dann mal anders durchlaufen und es hat funktioniert

statt so
Set appldoc = appldc.GetFirstDocument
While Not appldoc Is Nothing
    ...
    Set appldoc = appldc.GetNextDocument(appldoc)
Wend

hab ichs mal so probiert:

hab ich
for i = 1 to appldc.count
    Set appldoc = appldc.GetNthDocument(i)
    ...
next


vielleicht klappts bei dir auch.
Leider weiß ich nicht _warum_ das so war und wo der Fehler lag.
Titel: Re:Fehlermeldung: "Document is not from this collection"
Beitrag von: Glombi am 16.01.04 - 13:52:35
Was passiert bei
 Call mailApplDelete(appldoc)  
genau? Wird das Dokument gelöscht, so wie der Name vermuten lässt. Falls ja, wird die Fehlermeldung durch
  Set appldoc = appldc.GetNextDocument(appldoc)
produziert, da es GetNextDocument(appldoc) nicht mehr gibt.

Die Methode von Thomas Völk mit dem NthDocument sollte gehen. Wobei das sehr unperformant bei sehr vielen Dokumenten in der Collection ist.
Performanter wäre mit einem 2. Dokument zu arbeiten.

Andreas

Titel: Re:Fehlermeldung: "Document is not from this collection"
Beitrag von: Gravedigger am 16.01.04 - 13:59:52
Was passiert bei
 Call mailApplDelete(appldoc)  
genau? Wird das Dokument gelöscht, so wie der Name vermuten lässt.

Nicht ganz. Hier wird eine Email versendet, deswegen "mail...".


Dank euch, funktionert einwandfrei.

Nice weekend.
Titel: Re:Fehlermeldung: "Document is not from this collection"
Beitrag von: Semeaphoros am 16.01.04 - 14:02:08
Thomas:

8tung:

for i = 0 to appldc.count -1
    Set appldoc = appldc.GetNthDocument(i)
    ...
next

Ansonsten: Glombi hat recht, mit einem zweiten Doc-Object, wenn es um Löschungen geht.

Max:
Was sagt denn der Debugger, wo der Fehler auftritt? Vermutlich nicht, wo Du es glaubst, sondern beim GetNextDocument.
Titel: Re:Fehlermeldung: "Document is not from this collection"
Beitrag von: animate am 16.01.04 - 14:27:19

for i = 0 to appldc.count -1
    Set appldoc = appldc.GetNthDocument(i)
    ...
next


äh, Zitat aus der Hilfe:

Set notesDocument = notesDocumentCollection.GetNthDocument( n% )

n%:
Integer. A number indicating the document to return. Use 1 to indicate the first document in the collection, 2 to indicate the second document, and so on.
Titel: Re:Fehlermeldung: "Document is not from this collection"
Beitrag von: koehlerbv am 16.01.04 - 14:39:17
Nicht nur, dass die DesignerHelp das sagt - das IST auch so.
Es ist aber auch so, dass bei grösseren Collection das GetNthDocument verheerende Performanceeinbrüche beschert, da jedesmal der Pointer von der Basis  der Collection aus neu gebildet werden muss. Wenn man sich den Fortschritt zum Bleistift per Print-Statement anzeigen lässt, so kann man am Anfang gerade noch so die Hunderter-Stellen lesen, aber nach wenigen Tausend Docs kann man dann jedem Document einzeln die Hand schütteln.
Wirklich performant ist GetNextDocument - und das funktioniert ! Der Fehler muss also irgendwo anders liegen.
Was macht den mailAppDelete () mit appldoc ? Wird da ewendudel (SEMEAPHOROS !!!) was neu instantiiert (der Aufruf erfolgt ja by reference !) ? Das würde die Fehlermeldung ganz zwanglos erklären ;-)

Ciao,
Bernhard
Titel: Re:Fehlermeldung: "Document is not from this collection"
Beitrag von: Semeaphoros am 16.01.04 - 15:32:13
Sorry für die Falschmeldung beim GetNthDocument, zeigt, wie nie ich diese Funktion brauche ..... :-) ... sonst ist doch das immer nullbasierend...... tja... die Ausnahme bestätigt die Regel.

Dudelsack ist eingetragen   ;)
Titel: Re:Fehlermeldung: "Document is not from this collection"
Beitrag von: koehlerbv am 16.01.04 - 17:03:11
Zitat
... sonst ist doch das immer nullbasierend...
Jaja, "sonst". Aber hier macht es ja wegen NotesDocumentCollection.Count wirklich Sinn - das passt schon ;-)

Ciao,
Bernhard
Titel: Re:Fehlermeldung: "Document is not from this collection"
Beitrag von: Semeaphoros am 16.01.04 - 17:38:37
Passt schon, ist aber auch eine der ganz wenigen Stellen, wo der Count unfrisiert gleich passt  ;D