LotusScript code to update and save Lotus Notes profile documents
Learn how to use LotusScript code to create an action button that will save and update profile documents in Lotus Notes applications, courtesy of SearchDomino.com member Vinay Sharma.
This LotusScript code can be used to save and update profile documents in Lotus Notes applications.
Note: Be sure to enter values for profilename, fields(Field_1) and their values (in Value_1). Also, be sure to separate multiple values for one field "~" character.
1. Create a form and four fields:
servername, databasename,
profilename, Field_1 (multivalue) &
Value_1 (multivalue)
2. Create an action button -- called "Update profile" with the code:
Sub Click(Source As Button) On Error Goto errorhandler Dim uidoc As NotesUIDocument Dim uiws As New notesuiworkspace Dim doc As NotesDocument Dim i As Integer Dim rval As Variant, m1() As String Dim ctfield, ctvalue As Integer Set uidoc = uiws.CurrentDocument Set doc = uidoc.document If uidoc.IsNewDoc Then Msgbox "Please save the document first" Exit Sub End If Dim tdb As New notesdatabase (doc.Servername(0), doc. databasename(0)) If tdb.IsOpen Then 'ok Else Msgbox "cannot open the specified database, check access or data entered.." Exit Sub End If ' getprofile document Dim docProfile As NotesDocument Set docProfile = tdb.getProfileDocument(doc.ProfileName(0)) Set fieldItem = doc.GetFirstItem("Field_1") ctfield = 0 Forall x In fieldItem.values ctfield = ctfield + 1 End Forall If ctfield = 0 Then Msgbox "cannot find any value in fields item" Exit Sub End If ctval = 0 Set valueitem = doc.GetFirstItem("value_1") Forall y In valueitem.values ctvalue = ctvalue + 1 End Forall For i = 0 To (ctfield - 1) ' multiple separated by ~ characters.. If Instr(valueitem.values(i),"~") <> 0 Then rval = Split(valueitem.values(i), "~") Redim m1(Ubound(rval)) For t=0 To Ubound(rval) m1(t) = rval(t) Next Set itemtoSet = docProfile. ReplaceItemValue(fielditem.values(i), m1) Else Set itemtoSet = docProfile. ReplaceItemValue(fielditem.values(i), valueitem.values(i)) End If Next If i > 0 Then docProfile.Form = doc.ProfileName(0) docProfile.Save True, True Msgbox "Profile Document saved successfully" Exit Sub End If Msgbox "Profile Document was not saved" Exit Sub Errorhandler: Print "Error in Create Profile: " & Err() & " - " &Error() & " @line: " &Erl() Exit Sub End Sub
Save the form/document and click on the "Update profile" action button.
Do you have comments on this tip? Let us know.
This tip was submitted to the SearchDomino.com tip library by member Vinay Sharma. Please let others know how useful it is via the rating scale below. Do you have a useful Lotus Notes, Domino, Workplace or WebSphere tip or code snippet to share? Submit it to our monthly tip contest and you could win a prize.