Autor Thema: Rückgabewert einer Funktion  (Gelesen 1730 mal)

Offline Cyberjack

  • Frischling
  • *
  • Beiträge: 7
Rückgabewert einer Funktion
« 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


Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Rückgabewert einer Funktion
« Antwort #1 am: 02.11.06 - 10:20:56 »
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....
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Rückgabewert einer Funktion
« Antwort #2 am: 02.11.06 - 10:24:14 »
Jepp.

Und das objPersDoc wird in der Aufrufenden Funktion benutzt und in der Aufgerufenen deklariert...
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline Cyberjack

  • Frischling
  • *
  • Beiträge: 7
Re: Rückgabewert einer Funktion
« Antwort #3 am: 02.11.06 - 10:46:15 »
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.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Rückgabewert einer Funktion
« Antwort #4 am: 02.11.06 - 11:01:24 »
Wie gesagt, das Problem hatten wir hier schon mehrfach, zum Beispiel hier in diesem Thread. Du bist schlicht über die Vererbung gestolpert ...

Bernhard

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Rückgabewert einer Funktion
« Antwort #5 am: 02.11.06 - 11:16:07 »
Oh allgemeiner Lesefehler...

Und Bernhard war schneller...
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz