HAllo, der gekürzte Code sieht so aus:
Function WriteProfil(doc As NotesDocument) As Variant
Dim session As New NotesSession
Dim db As NotesDatabase
Dim profiledoc As NotesDocument
Dim level As Integer
Dim username As NotesName ' Person des Profildok
Dim StrKonfigFeld As String ' Name des Konfig-Feldes in dem die Feld-Liste steht
Dim StrKonfigFeldOwn As String ' Name des Konfig-Feldes in dem die Profil-Feld-Liste steht (nur bei eigenen Anträgen)
Dim VarProfilFeldListe As Variant
Dim StrProfilFeld As String, StrDokumentFeld As String
Dim VarAutoren(1) As Variant
On Error Goto Error_M
' bestimmte Werte in das Profildokument zurückschreiben
Set db = session.CurrentDatabase
level = db.CurrentAccessLevel
If level > 2 Then
Set username = New NotesName (doc.Submitter(0))
Set profiledoc = db.GetProfileDocument( "profil", username.Canonical)
' ... den Code zum Besetzen der anderen Felder habe ich der Übersichtlichkeit wegenentfernt
VarAutoren(0) = "[DBMgr]"
VarAutoren(1) = username.Canonical
Set item = profiledoc.ReplaceItemValue("AuthorNames", VarAutoren)
item.IsAuthors = True
' SPEICHERN
Call profiledoc.Save (True, True)
End If
WriteProfil = True
Exit Function
Error_M:
Call ErrorMessage(Cstr(Lsi_info(2)), Cstr(Erl()), Error, Err(), Cstr(Lsi_info(3)), Cstr(Lsi_info(12)))
Exit Function
End Function