Domino 9 und frühere Versionen > Entwicklung
NotesDoc als Rückgabewert eine Funktion
Glombi:
Wenn die Function in einer Script Library ist, geht es mit dem Rückgabewert NotesDocument nicht immer. Das sind jedenfalls meine Erfahrungen.
Andreas
koehlerbv:
Ich habe - ausser erklärliche Fälle - noch niemals Probleme damit gehabt. Und in ScriptLibs stecken eigentliche so gut wie alle functions von mir.
Was auf jeden Fall aber nicht geht, ist die Rückgabe eines NotesDocuments aus einer anderen DB, wenn der aufrufenden Routine nicht das Parent object (die NotesDatabase) bekannt ist - dann geht jeder Zusammenhang verloren.
Nicht geht:
Function GetDocument As NotesDocument
Dim AndereDatenbank as NotesDatabase
....
Was aber geht:
Function GetDocument (AndereDatenbank As NotesDatabase) As NotesDatabase
Das der vom Don gepostete Code ggf. kein NotesDocument zurückliefert, kann ja auch ganz andere Ursachen haben. Da wird das LETZTE Dokument einer Collection genommen und auf ein Item geprüft. Ist das da, wird ein Document zurückgegeben. Wenn nicht, dann eben nicht.
Unklar ist mir auch, warum versucht wird, vom letzten Document der Collection aus noch durch diese zu loopen - nach dem Ding ist ja sowieso Ende Gelände.
Bernhard
Glombi:
Ich hatte des öfteren den Fall, dass - obwohl in der Funktion das NotesDocument da war (wie der Debugger gezeigt hatte) - in der aufrufenden Sub dann nach
set doc = meinefunction
das doc nicht da war.
meinefunction ist eine Function in einer Script Library.
Woran es genau liegt, kann ich nicht sagen. Es spielt jedenfalls auch eine Rolle, welchen Scope doc hat d.h. wo es deklariert ist.
Beim nächsten Mal werde ich es mal genauer untersuchen.
Andreas
koehlerbv:
Ich arbeite Massiv mit Functions, die NotesDocument zurückliefern. Ein Problem hatte ich, wie gesagt, noch nie.
Wenn das Problem wieder mal auftritt: Schau nach dem ParentObject. Ich schätze, da tritt der Verlust auf.
Bernhard
Don Pasquale:
@driri:
Wenn ich wirklich nur alte Threads reanimieren wollte, dann hätte ich
richtig alte Threads genommen ;-)
--- Zitat von: koehlerbv am 25.01.05 - 13:38:01 ---Was auf jeden Fall aber nicht geht, ist die Rückgabe eines NotesDocuments aus einer anderen DB, wenn der aufrufenden Routine nicht das Parent object (die NotesDatabase) bekannt ist - dann geht jeder Zusammenhang verloren.
Nicht geht:
Function GetDocument As NotesDocument
Dim AndereDatenbank as NotesDatabase
....
Was aber geht:
Function GetDocument (AndereDatenbank As NotesDatabase) As NotesDatabase
--- Ende Zitat ---
OK, dieser Fall trifft bei mir zu.
Ich beschrieb bereits, die Function hat ein gültiges Dokument gefunden,
es wird aber nicht übergeben. Klaro, es ist ja auch aus einer anderen DB.
Dennoch werde ich aus der oben genannten Function nicht ganz schlau.
Ich werd wohl noch a weng probieren müssen
Ciao
Don Pasquale
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln