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

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.

-ADS BY GOOGLE

SearchWindowsServer

Search400

  • iSeries tutorials

    Search400.com's tutorials provide in-depth information on the iSeries. Our iSeries tutorials address areas you need to know about...

  • V6R1 upgrade planning checklist

    When upgrading to V6R1, make sure your software will be supported, your programs will function and the correct PTFs have been ...

  • Connecting multiple iSeries systems through DDM

    Working with databases over multiple iSeries systems can be simple when remotely connecting logical partitions with distributed ...

SearchDataCenter

SearchContentManagement

Close