Manage Learn to apply best practices and optimize your operations.

Signing agents

Work around having your agents stop running on the server due to agent signers.

Agents play one of the most important role in a Domino applications, as most of the backend and scheduling activities are done by agents. So, it is very crucial that the agents to run in the desired fashion, for proper functioning of the application.

But many times it happens that the agents that work perfectly in development environments just don't work once they are into production. The most common culprit behind this is the agent signer. The agent takes up the ID of the user/designer who last modified it. Once these agents are into production, they stop working, as the signer of the agent does not have the required agent execution rights on the server.

The solution for this is to open the agents in designer using the ID of a person who has proper agent execution rights on the server and save them. But this is not always feasible. I have found a workaround for this.

Create a new shared, Lotus Script agent on the server. In run when : select Manually from actions menu, Run once(@ command may be used). Write the following code in the initialise event of the agent and save it. You can then run the agent from the actions menu. The agent will run & sign all the other agents, except itself, with the current ID. In this way, all the agents will have their signer as the person who ran this agent.

Sub Initialize
	Dim s As New NotesSession
	Dim db As NotesDatabase
	Dim agt As NotesAgent
	Dim doc As NotesDocument
	Dim view As NotesView
	Dim x As Variant
	Dim y As Variant
	Set agt=s.currentagent
	Set db=agt.parent
	Forall a In db.Agents
		If x<>y Then
		Call a.Save
		End If	
	End Forall
End Sub

Dig Deeper on Domino Resources - Part 5

  • Favorite iSeries cheat sheets

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