Autor Thema: Aufruf einer Funktion  (Gelesen 1713 mal)

Offline alkuhn

  • Senior Mitglied
  • ****
  • Beiträge: 288
  • Geschlecht: Männlich
Aufruf einer Funktion
« am: 12.05.05 - 12:52:18 »
Hallo, ich habe einen Agent, der aus einer Script-Bibliothek eine Funktion aufruft. Beim Speichern des Agent erhalte ich immer den Fehler "Daten wurden aufgrund von Fehler im Script nicht gespeichert". Aber ich komme nicht auf den Fehler :-(

Im Agent soll eine Variable belegt werden
strPfad = ProfilLookUp("FeldName")
strPfad ist als String definiert

Und so sieht ProfilLookUp aus:
Function ProfilLookUp(sFeld As String) As String
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim docProfile As NotesDocument
   
   Set db = session.CurrentDatabase   
   Set docProfile = db.GetProfileDocument( "(DB-Profil)" )
   
   ProfilLookUp = "dd"
End Function

ProfilLookUp habe ich auf dd gesetzt, weil ich zuerst dort den Wert aus dem Feld haben wollte, den ich der Funktion übergebe. Da ich dachte, dass vielleicht hier mein Fehler ist, habe ich es herausgenommen. Alles ohne Erfolg.

Hat mir jemand einen Tipp? Ich wollte über die Funktion gleich zwei Felder aus dem Profildokument holen - aber bekomme es ja schon mit einem nicht in den Griff :-)

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Aufruf einer Funktion
« Antwort #1 am: 12.05.05 - 12:55:13 »
Normalerweise sollte die Stelle wo der Fehler ist ja rot markiert werden.
Hast Du die ScriptLib nach dem Agenten erstellt?
evtl. zuerst die ScriptLib speichern.
dann im Agenten den Aufruf strPfad = ... auskommentieren. Agent speichern & schliessen, Agent wieder öffnen. Kommentar rückgängig. Speichern sollte jetzt funktionieren.

Notes hat z.T. ein kleines Refresh Problem bei ScriptLibs und Agenten.

gruss

umi
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline alkuhn

  • Senior Mitglied
  • ****
  • Beiträge: 288
  • Geschlecht: Männlich
Re: Aufruf einer Funktion
« Antwort #2 am: 12.05.05 - 12:59:33 »
Ich werde verrückt. Genau das war mein Problem. Ich habe völlig umsonst gesucht  ??? Da das Ganze noch ziemlich neu für mich ist, kannst du mir einen Tipp geben, wie ich gleich mehrere Felder übergebe bzw. als Antwort bekomme? Vielen Dank für Deine schnelle Antwort. Das hat mir echt geholfen

elajen

  • Gast
Re: Aufruf einer Funktion
« Antwort #3 am: 12.05.05 - 13:07:27 »
Hallo,

wo hast du denn diesen Code stehen???
Zitat

strPfad = ProfilLookUp("FeldName")
strPfad ist als String definiert

Gruß von Ekki.

Offline alkuhn

  • Senior Mitglied
  • ****
  • Beiträge: 288
  • Geschlecht: Männlich
Re: Aufruf einer Funktion
« Antwort #4 am: 12.05.05 - 13:10:31 »
In Sub Initialize habe ich ganz am Anfang
Dim strPfad As String

und anschließend strPfad = ProfilLookUp("TempDir")

Hoffe, ich habe Dich richtig verstanden.

elajen

  • Gast
Re: Aufruf einer Funktion
« Antwort #5 am: 12.05.05 - 13:15:01 »
Ja, richtig verstanden.

Außer, dass du für session kein set gemacht hast, finde ich keinen Fehler.

Habe grad mal deinen Code bei mir in einen Agenten reinkopiert. Compiliert korrekt. Lösch doch mal den Agenten, und kopiere den Inhalt neu rein

Gruß von Ekki.

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Aufruf einer Funktion
« Antwort #6 am: 12.05.05 - 13:17:05 »
Da gibts mehrere Möglichkeiten:

a) als Parameter
function meinTest(param1 as notesdocument, param2 as string, param3 as integer) as boolean

Die Parameterübergabe erfolgt über Referenzen. D.h. Änderungen an den parametern werden auch in der aufrufenden Funktion sichtbar.



b) als Array
dim meinArray() as string
z.B. mit
function meinTest(meinarray() as string)as boolean
Hier musst du einfach die Position der einzelnen Parameter im Array festlegen.

c) als Liste
dim meineListe list as string
function meinTest(meineListe list as string)as boolean

Hier kannst Du mit zuweisen mit
meineListe("Feldname")=Wert
auslesen mit
Wert = meineListe("Feldname")

mfg umi
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Aufruf einer Funktion
« Antwort #7 am: 12.05.05 - 13:18:32 »
Ein Set ist auch nicht nötig, da mit
dim session as new notessession

die session schon gesetzt ist
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

elajen

  • Gast
Re: Aufruf einer Funktion
« Antwort #8 am: 12.05.05 - 13:19:12 »
Stimmt. Habe ich überlesen.

Offline alkuhn

  • Senior Mitglied
  • ****
  • Beiträge: 288
  • Geschlecht: Männlich
Re: Aufruf einer Funktion
« Antwort #9 am: 12.05.05 - 13:24:58 »
Ich danke Euch!!!!!!!!  :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz