在代理中以另一个身份执行代码

Domino代理可以设定以web用户身份执行或者以签名者身份运行。但有时也会有这样的情况:代理需要以web用户的身份来处理一些东西,但是其中又有部分代码web用户的权限可能不够,需要以签名者身份执行。比如在myview的翻页修正处理中,需要以web用户身份来获取有权限查看的文档,又可能需要创建视图,而普通的用户是无法创建视图的。

最后采用这种方案:代理A还是以web用户身份运行,将创建视图的代码写到另外一个代理B中,代理B以签名者身份运行;然后在代理A中调用代理B,完成创建视图的操作。具体实现是使用notesAgent的run方法:

status = notesAgent.Run( [ noteID$ ] )
Parameter
noteID$
String. Optional. The note ID of a document. The value is passed to the ParameterDocID property of the called agent.

调用之前先将参数写到一个文档中,然后将这个文档的noteID传给代理B,代理B使用ParameterDocID属性获得noteID,获得参数、执行完操作、删除临时的参数文档,再返回代理A继续执行。