Domino 9 und frühere Versionen > ND6: Entwicklung
[Web] Agent mit Username
robertpp:
Ich rufe im web mit eine link "?OpenFrameset&Login" nachdem sich der user angemeldet hat ruf ich einen Agent auf "Logging?OpenAgent".
Im Agent steht dieser Code:
Dim s As New NotesSession
Dim db As NotesDatabase
Dim ldoc As NotesDocument
Dim newdoc As NotesDocument
Dim view As NotesView
Set db = s.CurrentDatabase
Set view = db.GetView( "Counter" )
Set ldoc = view.GetDocumentByKey( "log" )
Dim nam As NotesName
Set nam = s.CreateName(s.EffectiveUserName)
user = nam.Abbreviated
dateread = Now
displayall = user & " : " & dateread & Chr$(13)
If Not ldoc Is Nothing Then
history = ldoc.AccessLog(0)
Set item = ldoc.GetFirstItem("AccessLog")
Call item.AppendToTextList(displayall)
ldoc.AccessLog = ""
ldoc.Accesslog = displayall & history
Call ldoc.save (True, False)
Else
Set newdoc = db.CreateDocument
newdoc.form = "Log"
Dim PublicAccess As New NotesItem(newdoc, "$PublicAccess","1")
Dim item2 As New NotesItem(newdoc, "AccessLog", displayall)
Dim item3 As New NotesItem(newdoc, "LogDate", Format(Date$,"Short Date"))
Call newdoc.Save(True,False)
End If
Der Agent funktioniert auch bis auf das er mir immer den gleichen Namen ausgibt der den Agent gespeichert hat.
Nehm ich Set nam = s.CreateName(s.UserName) dann gibt er mir den Servernamen zurück.
und Evaluate geht leider nicht :Set nam = s.CreateName(Evaluate("@Name([Abbreviate]; @UserName)"))
Wie kann ich das machen das er mir den User zurückgibt der im Web angemeldet ist?
meichhorner:
Hy,
aus der Designer-Hilfe: ;)
--- Zitat ---Beispiel: Die Eigenschaft "DocumentContext" in Web-Agent-Scripts verwenden
In diesem Script werden die Anweisung "Print" und die CGI-Variable remote_user verwendet, um "Benutzer =" mit dem Namen des Web-Benutzers anzeigen zu lassen. Durch das Script wird zunächst "DocumentContext" festgelegt, ehe der Rest des Scripts ausgeführt wird. Die Variable geht von einer Textliste aus.
Dim session As New NotesSession
Dim doc As NotesDocument
Set doc = session.DocumentContext
Print "Benutzer = " + doc.remote_user(0)
--- Ende Zitat ---
Cu
Martin
Glombi:
Der Agent läuft als Web-Agent auf dem Domino-Server, also liefet Username den Servernamen zurück. So weit, so schlecht.
Du müsstest dafür sorgen, dass im Frontend irgendwo der Username gespeichert wird. Z.B. in einem Dokument - dort ein zur Anzeige berechnetes Feld mit @Username als Formel.
Der Agent muss dann auf dieses Dokument zugreifen.
Andreas
robertpp:
Dann muss ich aber jedes mal wenn sich ein user anmeldet ein neues doc erstellen oder kann ich auch auf ein nicht bespeichertes doc auf das feld Remote_User zugreifen? Wenn ich zb eine Form nehme mit publicaccess=1 und Saveoptions=0 und dem Feld Remote_User und nachdem anmelden refresh ich die Form dann steht ja der Username drinnen nur kann ich das feld auch auslesen?
animate:
machs einfach so, wie Martin geschrieben hat. Das sollte funktionieren
du brauchst nicht selbst den Namen in ein Feld schreiben, der steht in der CGI Variable drin.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln