Domino 9 und frühere Versionen > Entwicklung

NotesDoc als Rückgabewert eine Funktion

<< < (2/3) > >>

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