设置为NotesAgent的代表运行

问题描述 投票:0回答:1

是否可以在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,但没有找到任何可以帮助我的东西(但我可能会错过一些东西)

lotus-notes lotus-domino lotusscript
1个回答
0
投票

首先-正如Richard的评论中提到的那样-您需要Designer-访问数据库才能更改代理,就像您直接修改设计元素而不是使用界面那样(以某种方式绕开了进行编辑代理商)。

第二:每当您通过其基础NotesDocument修改代理时,都会破坏设计元素上的签名:即使保存工作,该代理也会被破坏并且不能再次运行。

因此您需要在agentNote.Sign()之前添加一个agentNote.Save(...),否则代理将无法运行。

当然,执行此代码的人需要适当的服务器权限(Serverdocument-安全性-签署代理以代表其他人运行),否则该代理将不会运行。

© www.soinside.com 2019 - 2024. All rights reserved.