Manage Learn to apply best practices and optimize your operations.

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 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.
If tdb.IsOpen Then
Msgbox "cannot open the specified 
database, check access or data entered.."
Exit Sub
End If

' getprofile document 
Dim docProfile As NotesDocument
Set docProfile = 

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)
Set itemtoSet = docProfile.
ReplaceItemValue(fielditem.values(i), m1)
Set itemtoSet = docProfile.
End If
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
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 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.

More LotusScript resources:

Dig Deeper on LotusScript

  • Favorite iSeries cheat sheets

    Here you'll find a collection of valuable cheat sheets gathered from across the iSeries/ community. These cheat ...