Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Jenson am 31.08.04 - 16:04:13
-
Moin,
ich brauche in einem Script, dass von einem Hintergrundagenten ausgeführt wird den Benutzernamen des derzeit in der Session angemeldeten Benutzers. (Das ganze ist eine Webseite). Wenn ich mit der @Formelsprache @UserName abfrage, dann bekomme ich den auch. Allerdings muss ich an dieser Stelle wegen der gewünschten Funktionalität LotusScript verwenden. Hier bekomme ich dann immer den Namen des Servers zurück. Also dachte ich daran es über Evaluate zu probieren.
Folgende Zeilen:
Dim Session as New NotesSession
Dim db As New NotesDatabase( "", "" )
Dim doc As NotesDocument
Dim dateTime As New NotesDateTime( "" )
Dim usrname As NotesName
Dim username As string
Dim NoAddress As string
Dim Initials As string
Dim ret As Variant
Dim SekInt As Integer
Dim Sekunden As String
Dim YYMMDD As String
Dim docID As String
Dim eval As Variant
eval = Session.Evaluate("@UserName", doc)
ergeben bei mir aber die Fehlermeldung:
"Not a member: Evaluate (156)"
Ich hab mich schon durch zich Beispiele in der Hilfe gewühlt und bin keinen Schritt weiter.
doc
Jenson
-
NotesSession.Evaluate gibt es nur, wenn man via COM draufzugreift, also nicht in LS. In LS muss stattdessen die Evaluate-Funktion verwendet werden, sprich ohne SessionDot
-
Das geht so nicht, da das Script auf dem Server ausgeführt wird und dort der Servername als username zurückgeliefert wird, wie Du bereits festgestellt hast.
Du musst in Deiner Maske ein Feld (Berechnet zur Anzeige) mit dem Wert @Username erstellen.
Auf das Feld kannst Du dann in dem Agenten zugreifen.
Generell: Die Syntax wäre
eval = Evaluate("@UserName")
print "Der Username ist = " & eval(0)
Andreas
-
Evaluate ist auch kein Member der Klasse NotesSession, sondern ein LS-Statement / function. Schau Dir die Syntax mal in der DesignerHelp genau an. Dann wirst Du auch feststellen, dass der Parameter doc in diesem Zusammenhang überflüssig ist.
Bernhard
-
Bernhard, Du bist aber spät dran ;D ;)
Andreas
-
Obacht Bernhard, NotesSession.Evaluate gibt es, wenn man über COM, also von aussen, draufzugreift
-
Na, ich wollte Dir (und jens) auch mal den Vortritt lassen ;D
-
Obacht Bernhard, NotesSession.Evaluate gibt es, wenn man über COM, also von aussen, draufzugreift
Ja, natürlich, aber dass das hier kein COM-Zugriff war, war doch offensichtlich.
Bernhard
-
Danke soweit :)
Ich bin wohl irgendwie auf die COM Schiene geraten. Wenn ich das nun eval=Evaluate(|@UserName|) ausführe erhalte ich keinen Fehler, aber dafür den Unterzeichner des Agenten.
Ein Feld kann ich hier leider nicht anlegen, da ich mich nicht im NotesClient befinde. Das ganze ist ein Agent der gerufen wird, wenn Formulareingaben einer Webseite abgeschickt werden.
Jenson
-
Gemau in diesem Formular, das zurückgeschickt wirst, musst Du das Feld einfügen, Andreas hat ja ausdrücklich gesagt, dass man das fürs WEB so machen muss.
-
Aber ob das gut ist, wenn der komplette Name im HTMLCode steht?
Jenson
-
Weiss auf weiss oder ein verstecktes Feld ?
-
Du kannst das Feld im Web verbergen, das sollte dennoch funktionieren. Oder ein HTML hidden Flag mitgeben. Da kannst Du Deine Kreativität austoben.
Andreas
-
Andreas, Du bist aber spät dran ;D ;)
Andreas
-
Also soweit wäre ich auch noch kreativ geworden :-) Ich meinte wenn sich jemand den Sourcecode anzeigen lässt (rechte Maustaste, Quelltext anzeig...), dann sieht er immer unsere internen Namen ...
Aber dann würde es logischerweise richtig funktionieren, da ich dann einfach das Formularfeld nutzen kann.
Jenson
-
Andreas, Du bist aber spät dran ;D ;)
Andreas
Heist Du jetzt auch schon Andreas , Bernhard ;D
-
Ich glaub', jetzt isses soweit ;D ;D ;D ;D
"Bruce Willis" hatte ja gestern auch schon was gefaselt von den komischen Vögeln, die flattern ... ;D
Berndreas ;D
-
... Ich meinte wenn sich jemand den Sourcecode anzeigen lässt (rechte Maustaste, Quelltext anzeig...), dann sieht er immer unsere internen Namen ...
Naja, wenn die Leute den Quelltext brauchen, um nachzuschauen, wie sie heissen ;D
Bernhard
-
... es heisst doch immer wieder "zurück zu den Quellen" .... ;D
-
Ah ! Deswegen ! Eine Aufforderung an Debile oder an welche mit Alzmann (oder wie der Kerl hiess) ...
Bernhard
-
Salzheimer? ;D Oder wars Pfeffershauser?
-
Nein, nein, das war irgendwas mit "Alz" ! Weil: So heisst nämlich der Fluss, aus dem unser ... unser ... äh, wie heisst der grosse See hier nochmal ?
Bernhard ;D
-
Salzsee?? -- ;D