代表 NotesAgent 设置 运行
Set Run on Behalf of for NotesAgent
有没有办法在 NotesAgent 中设置 "run on behalf of"?
我尝试使用 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)
在 'Save' 上中断,它说不允许保存代理。
我也检查了 C API 并没有找到任何可以帮助我的东西(但我可能会遗漏一些东西)
首先 - 正如 Richard 在评论中提到的 - 您需要 Designer- 访问数据库才能像这样更改代理,因为您直接修改设计元素而不是使用界面(以某种方式规避这用于编辑代理)。
其次:每当您通过其底层 NotesDocument 修改代理时,您都会破坏设计元素上的签名:即使在保存作品时代理也会被破坏,而不是再次 运行。
所以你需要在你的agentNote.Save(...)
前加上一个agentNote.Sign()
否则代理将无法运行。
当然执行这段代码的人需要相应的服务器权限(Serverdocument - Security - Sign agents to 运行 behalf of other),否则代理不会运行。
有没有办法在 NotesAgent 中设置 "run on behalf of"?
我尝试使用 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)
在 'Save' 上中断,它说不允许保存代理。
我也检查了 C API 并没有找到任何可以帮助我的东西(但我可能会遗漏一些东西)
首先 - 正如 Richard 在评论中提到的 - 您需要 Designer- 访问数据库才能像这样更改代理,因为您直接修改设计元素而不是使用界面(以某种方式规避这用于编辑代理)。
其次:每当您通过其底层 NotesDocument 修改代理时,您都会破坏设计元素上的签名:即使在保存作品时代理也会被破坏,而不是再次 运行。
所以你需要在你的agentNote.Save(...)
前加上一个agentNote.Sign()
否则代理将无法运行。
当然执行这段代码的人需要相应的服务器权限(Serverdocument - Security - Sign agents to 运行 behalf of other),否则代理不会运行。