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 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.

Dig Deeper on LotusScript

SearchWindowsServer

Search400

  • Favorite iSeries cheat sheets

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

  • HTML cheat sheet

    This is a really cool cheat sheet if you're looking to learn more about HTML. You'll find just about everything you every wanted ...

  • Carol Woodbury: Security

    Carol Woodbury

SearchDataCenter

SearchContentManagement

Close