Autor Thema: Funktion liefert kein NotesItem als Rückgabewert  (Gelesen 1265 mal)

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Irgendwie habe ich gerade ein Brett vorm Kopf und stehe auf der Leitung.

Ich habe in einer Script-Bibliothek eine Funktion, die mir ein NotesItem zurückliefern soll.

Code
Function NamederFunktion(Parameter As...) As NotesItem

  Dim item As NotesItem

  'Hier erfolgt die Verarbeitung

  Set  NamederFunktion = item

End Function

Bis hier klappt das Ganze auch.


In einem Agenten rufe ich die Funktion auf


Dim item as NotesItem

Set item = NamederFunktion(Parameter....)

Die Variable item ist aber leer.


Kann mir einer sagen warum?


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Funktion liefert kein NotesItem als Rückgabewert
« Antwort #1 am: 25.07.07 - 12:39:51 »
Ich vermute, Du instatiiertst innerhalb der Funktion ein Objekt und leitest davon das Item ab. Ist die Funktion abgearbeitet, wird das Objekt vernichtet und damit auch das "Elternteil" des Items.

Bernhard

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Funktion liefert kein NotesItem als Rückgabewert
« Antwort #2 am: 25.07.07 - 12:49:18 »
Ich hole mir mit GetDocumentByKey ein NotesDoucment und mache dann ein

Set item = doc.GetFirstItem

Von der Vorgehensweise entspricht das in etwa dem, was in !!HELP!! auch passiert.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Glombi

  • Gast
Re: Funktion liefert kein NotesItem als Rückgabewert
« Antwort #3 am: 25.07.07 - 12:52:38 »
Du kannst das NotesItem als Parameter an die Funktion übergeben - da es Call by Reference ist sollte es nach dem Arbeiten der Funktion in der aufrunden Sub zur Verfügung stehen.

Bsp.
dim item as NotesItem

call NamederFunktion(Parameter,.., item)

Function NamederFunktion(Parameter As..., item as NotesItem)  as Integer

...

If not item is nothing then
NamederFunktion = true
else
NamederFunktion = false
end if

End Function


Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Funktion liefert kein NotesItem als Rückgabewert
« Antwort #4 am: 25.07.07 - 12:55:03 »
Das wäre eine Methode. Alternativ kann man das NotesDocument, das ja die Vaterschaft für das NotesItem übernimmt, global definiert werden. Auf jeden Fall darf es nicht mit der Function wieder verloren gehen.

Bernhard

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Funktion liefert kein NotesItem als Rückgabewert
« Antwort #5 am: 25.07.07 - 13:10:52 »
Der Hinweis auf's Notesdocument war der entscheidende.

Da die weitere Verarbeitung des Variable item auch in der Bibliothek geschieht, habe ich einfach die Definition der Variable doc in den Declaration - Abschnitt eingefügt. Damit funktioniert's.

Danke euch beiden für die Kreissäge (für's Brett)  ;D

Axel
 
Ohne Computer wären wir noch lange nicht hinterm Mond!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz