Hallo zusammen,
Leider bin ich was Lotus Script angeht noch fleißig am Trainieren. Ich habe gerade ein kleines Problem, bei dem ich nicht weiterkomme. Ich habe eine Notes-Anwendung und dort einen Synchronisations-Button in einer Maske, mit dem unter anderem die Email-Adresse des Benutzers aus dem Domino Directory ausgelesen werden soll und in das Userprofil des aktuellen Benutzers in dieser Notes-Anwendung geschrieben werden soll. Das im Userprofil vorgesehene Feld heißt "EmailAddress".
Ich habe nun geschafft, die Email-Adresse aus dem Domino Directory direkt in das Test-Feld "Email" der gerade geöffneten Maske zu schreiben (siehe nachfolgender Code).
Sub Click(Source As Button)
Dim s As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim namesDb As New NotesDatabase("", "")
Dim thisdb As NotesDatabase
Dim namesView As NotesView
Dim namesDoc As NotesDocument
Dim nam As NotesName
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Set nam = s.CreateName(s.UserName)
Call namesDb.Open(s.CurrentDatabase.Server,"names.nsf")
Set namesView = namesDb.GetView("($VIMPeople)")
Set namesDoc = namesView.GetDocumentByKey(nam.Abbreviated)
Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document
uidoc.EditMode = True
doc.Email = namesDoc.InternetAddress(0)
Call doc.Save(True, False, True)
End Sub
Wenn ich allerdings von der momentan geöffneten Maske das Feld "EmailAddress" im UserProfile füllen will, bleibt das jeweils leer (siehe nachfolgender Code).
Sub Click(Source As Button)
Dim s As New NotesSession
Dim namesDb As New NotesDatabase("", "")
Dim thisdb As NotesDatabase
Dim namesView As NotesView
Dim namesDoc As NotesDocument
Dim nam As NotesName
Dim pdoc As NotesDocument
Set nam = s.CreateName(s.UserName)
Call namesDb.Open(s.CurrentDatabase.Server,"names.nsf")
Set namesView = namesDb.GetView("($VIMPeople)")
Set namesDoc = namesView.GetDocumentByKey(nam.Abbreviated)
Set thisDb = s.CurrentDatabase
Set pdoc = thisDb.GetProfileDocument("UserProfile","Database")
pdoc.EditMode = True
pdoc.EmailAddress = namesDoc.InternetAddress(0)
Call pdoc.Save(True, False, True)
End Sub
Wo liegt denn hier der Fehler? Muss ich pdoc als NotesUIWorkspace deklarieren, damit das Feld "EmailAddress" befüllt werden kann?
Danke für Eure Hilfe,
gere