Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: alkuhn 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 :-)
-
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
-
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
-
Hallo,
wo hast du denn diesen Code stehen???
strPfad = ProfilLookUp("FeldName")
strPfad ist als String definiert
Gruß von Ekki.
-
In Sub Initialize habe ich ganz am Anfang
Dim strPfad As String
und anschließend strPfad = ProfilLookUp("TempDir")
Hoffe, ich habe Dich richtig verstanden.
-
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.
-
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
-
Ein Set ist auch nicht nötig, da mit
dim session as new notessession
die session schon gesetzt ist
-
Stimmt. Habe ich überlesen.
-
Ich danke Euch!!!!!!!! :)