代表 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),否则代理不会运行。