是否可以在NotesAgent中设置“代表运行”?
我尝试过使用NotesNoteCollection的解决方案
Dim nc As NotesNoteCollection
Set nc = db.CreateNoteCollection(False)
Call nc.SelectAllCodeElements(True)
nc.SelectAgents = true
Call nc.BuildCollection
然后我循环nc并找到我的代理并设置项目$ OnBehalfOf
call agentNote.replaceitemvalue("$OnBehalfOf", "username")
call agentNote.save(true, false)
这违反了“保存”,它说不允许保存代理。
我还检查了C API,但没有找到任何可以帮助我的东西(但我可能会错过一些东西)
首先-正如Richard的评论中提到的那样-您需要Designer-访问数据库才能更改代理,就像您直接修改设计元素而不是使用界面那样(以某种方式绕开了进行编辑代理商)。
第二:每当您通过其基础NotesDocument修改代理时,都会破坏设计元素上的签名:即使保存工作,该代理也会被破坏并且不能再次运行。
因此您需要在agentNote.Sign()
之前添加一个agentNote.Save(...)
,否则代理将无法运行。
当然,执行此代码的人需要适当的服务器权限(Serverdocument-安全性-签署代理以代表其他人运行),否则该代理将不会运行。