Our help desk recently received several calls from users regarding their Out of Office messages. Lotus Notes users have complained that they enabled their Out of Office agents before a holiday without any issues. However, when they tried to disable the agents, they couldn't. Instead, the Out of Office profile displayed a message similar to that in Figure 1.
Figure 1. Out of Office profile error message.
Figure 1. Out of Office profile error message.
You might recognize that this is the message that is displayed when a Lotus Notes user has "editor" access to his mail file and tries to enable or disable his out of office agent. With editor access, an administration request enables or disables the agent on behalf of the Lotus Notes user.
It's worth noting that the Lotus Notes users received each this message all day. I could not find any administration request on the Lotus Domino server.
I tried to reproduce the error message on my workstation, but couldn't. However, the message was visible in the user's desktop when viewed remotely. Subsequently, an error message that occurred in the status bar stated:
"Notes error: 182 Instance member CONFIGUREMAILAGENTTEXT does not exist."
I searched the IBM Knowledge Base forCONFIGUREMAILAGENTTEXT and found this technote referring to the out-of-office agent error message that states:
In Lotus Notes, you attempt to enable the Out of Office (OOO) agent in your mail file. The agent does not enable and you notice the following error message in the status bar of the Notes client:
"Notes error: 182 Instance member CONFIGUREMAILAGENTTEXT does not exist."
This issue only occurs for users with Editor access to their mail file and only occurs in Notes, regardless of the mail template design being used. The issue does not occur when using Lotus Domino Web Access (DWA) mail.
Background information.
Five days after the holiday, I did a mass change on all Lotus Notes users' mail files to ensure that all access control lists (ACLs) only have editor access with all options set except "can create personal agents." Our company uses Lotus Domino server version 7.0.3 and Lotus Notes client version 7.0.2, with a modified dwa7.ntf mail template. These changes, however, do not affect the Out of Office profile. The IBM technote offered the following hint:
NOTE: The DWA7 client that ships with the Notes/Domino 7.0.2 release is incompatible with all previous versions of Notes.
This raises an important question: Does this affect all previous versions of Lotus Notes, including version 7.0.1? The answer is yes; version 7.0.1 is incompatible with dwa7.ntf, which is shipped with client version 7.0.2. Lotus Notes clients using this version could not disable the OOO agent. A long-term solution is to update these clients as soon as possible.
The technote shows that there is another option. I can grant these clients "designer" access. I used the following code to make the changes in the Domino Directory. I suggest creating a new agent in the Domino Designer, then selecting "all selected documents" from the menu and copying the following LotusScript code into the agent:
Option Public
Option Declare
'Use "OpenLogFunctions"
Sub Initialize
'On Error Goto Errorhandler
Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim total As Long
Dim docnum As Long
Set db = session.CurrentDatabase
Set dc = db.UnprocessedDocuments
total = dc.Count
docnum = 0
Set doc = dc.GetFirstDocument
While Not doc Is Nothing
docnum = docnum + 1
Call UpdateStatusBar(docnum, total)
Call ProcessPersonDoc(doc)
Set doc = dc.GetNextDocument(doc)
Wend
Call ws.ViewRefresh
'Exit Sub
Errorhandler:
'Call LogError
'Exit Sub
End Sub
Sub UpdateStatusBar
(x As Long, total As Long)
'This will display the percentage complete in the status bar as the agent runs
Print "Working..."
& Cstr(Round((x / total), 2)*100) & "% done"
End Sub
Sub ProcessPersonDoc(doc As NotesDocument)
'On Error Goto stackError
Dim s As New NotesSession
Dim profile As NotesDocument
Dim owner As String
Dim ACL As NotesACL
Dim ACLEntry As NotesACLEntry
Dim nn As NotesName
Dim Maildb As New NotesDatabase ( doc.MailServer(0), doc.MailFile(0) )
If Maildb.IsOpen Then
Print( "Succesfully opened " & Maildb.Title )
Set profile = Maildb.GetProfileDocument("CalendarProfile")
Set nn = s.CreateName ( profile.Owner(0) )
Set ACL = MailDB.ACL
Set ACLEntry = ACL.GetEntry ( profile.Owner(0) )
If Not ( ACLEntry Is Nothing ) Then
ACLEntry.Remove
ACL.Save
End If
'Set OWNER access to DESIGNER
Set ACLENtry = New NotesACLEntry ( ACL, profile.Owner(0), 5 ) ACLENtry.CanDeleteDocuments = True
ACLENtry.CanCreateLSOrJavaAgent = True
ACLENtry.IsPerson = True
ACL.Save
End If
EXITPOINT:
'Exit Sub
stackError:
'Call LogError()
'Resume EXITPOINT End Sub
You can select one or more users and run the agent against their mail files. The agent will read the calendar profiles to determine the mail-file owner, and then it will change the ACL.
No comments:
Post a Comment