Subject: Agent operations
“What are differences when run an agent locally and on the server? Why can manually invoked agents only run on the client side?”
You’re asking for a lotta detail, some of which it’s unlikely you really wanna know. So if you’re intending to do something, it might be useful to me to know what it is you’re aiming at.
There’s local immediate agents; there’s local scheduled agents, there’s server-based scheduled agents, and there’s also (probably what you’re lookin’ for) immediate “run-on-server” agents. Each has capabilities and access controls designed for their contexts. Yeah, it takes awhile to get used to those specific capabilities.
Server, Scheduled agents:
They run with the signer’s access controls. They also have their own server-level restrictions in the server’s Server document (in the Address Book). “Unrestricted” agents can access the server’s operating system, too.
In ND6 the server can “run on behalf of” that user to access data from yet a third server; in R5, this version of “impersonation” wasn’t permitted, as it’s pretty mind-bending and a bit complicated to implement, I’m sure!
Local, Scheduled agents:
They run with the local client’s access controls. These are kinda like “scheduled, personal agents”, so they have network access that the ID has, and they use it. They also have the ability to access the workstations disks and such, so technically they’re “unrestricted”.
Local, triggered agents:
They run with the local client’s access controls. In addition, they can actually ditz with the Notes client they’re running on, so they can take advantage of the user’s context (what documents are selected? What view am I in?). They can also operate the NotesUI classes because of this, too. They also have the ability to access the workstations disks and such, so they’re technically “unrestricted”.
Local triggered agents are subject to ECLs, though, allowing the user to permit or prohibit them from running.
Server, triggered agents:
They run with the signer’s access controls. I don’t have an Address Book in front of me, so I can’t remember if they have specific “server” restrictions, too. I doubt they do.
Manually-invoked agents can indeed run on the server side, so “I dunno” what the issue is, in particular there. But I can guess.
Only “run once” or “run on entire database” agents can be launched on-demand at the server. The server isn’t handed the client’s view selections, or view location, or the like.