Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Cyberjack am 02.11.06 - 10:13:53
-
Hallo liebe Kollegen,
eigenartige Phänomene passieren.... :-\
ich Habe in einer Script Bibliothek folgende Funktion geschrieben:
Function GetPersonDocument( sUserName As String,sServerName As String) As NotesDocument
' Funktion : GetPersonDocument()
' Aufgabe : Personendokument aus dem Adressbuch des Servers auslesen
' Übergabe : Username,Servername
' Rückgabe : NotesDocument
Dim objDatabase As NotesDatabase
Dim objView As NotesView
Dim objSession As New NotesSession
Dim objPersDoc As NotesDocument
'Adressbuch des entsprechenden Servers öffnen
Set objDatabase = objSession.GetDatabase( sServerName,"names.nsf")
If Not objDatabase.IsOpen Then 'War nix mit öffnen?
Set GetPersonDocument = Nothing
Else
Set objView = objDatabase.GetView( "People" )
Set GetPersonDocument = objView.GetDocumentByKey( sUserName )
End If
End Function
Diese Funktion wird innerhalb einer anderen Funktion der selben Scriptbibliothek aufgerufen. Hier der Ausschnitt:
Set objPersonDoc = GetPersonDocument( sUserName,sServerName )
If objPersonDoc Is Nothing Then
Print "Personendokument von User " & sUserName & " konnte nicht geöffnet werden"
Call UnlockDocument( objDocument )
Exit Sub
End If
Wenn ich das ganze Debugge, dann sehe ich, dass GetPersonDocument auch tatsächlich gesetzt wird. Nuer kommt der Wert
nicht in die Variable objPersonDoc (vom Typ NotesDocument) an ??? Habe schon Cache gelöscht, aber das brachte nicht den erwarteten Erfolg. Kann hier jemand helfen?
Vielen Dank und Gruss von
Robert
-
Hallo
Das thema hatten wir schon einige Male hier...
Es legt daran, dass das Datenbankobjectt nicht Global deklariert ist.
Die aufrufende Funktion "kennt" das Doc dann nicht....
-
Jepp.
Und das objPersDoc wird in der Aufrufenden Funktion benutzt und in der Aufgerufenen deklariert...
-
Verstehe ich nicht .... Das Objekt, welches ich zurückgebe ist kein Datenbankobjekt sondern ein NotesDocument Objekt. Ausserdem ist in der Aufrufenden Funktion die Variable objPersonDoc und in der Funktion selber heisst das Dingen objPersDoc. Da dieses Teil dort eh nicht verwendet wird, habe ich die Zeile Dim objPersDoc as NotesDocument wieder entfernt.
-
Wie gesagt, das Problem hatten wir hier schon mehrfach, zum Beispiel hier in diesem Thread (http://atnotes.de/index.php?topic=10406.msg130752#msg130752). Du bist schlicht über die Vererbung gestolpert ...
Bernhard
-
Oh allgemeiner Lesefehler...
Und Bernhard war schneller...