当前位置: 代码迷 >> Lotus >> 关于署理,运行代表的作用
  详细解决方案

关于署理,运行代表的作用

热度:216   发布时间:2016-05-05 06:48:10.0
关于代理,运行代表的作用。
我有个需求如下:
有个数据库,每天特定时间需要进行统计,然后将所有文档删除。
但是每天对此数据库中文档进行操作的用户,都没有删除文档的权限。
尝试过设置一个代理,把运行代表写成有删除权限的ID,可是运行的时候,还是没有删除权限。

问是我代理设置的问题,还是有其他方法可以实现?

------解决方案--------------------
你应该用代码调用那个代理,并且使用agent.runOnServer方法来运行它。
如果在本地客户端运行代理(agent.run()),那个运行代表没有作用的,用的还是当前用户身份。
实测:
Sub Initialize()
Dim session As New NotesSession
  Dim agent As NotesAgent
  Dim db As NotesDatabase
  Dim doc As NotesDocument
  Dim body As NotesRichTextItem
  Set agent = session.CurrentAgent
  Set db = session.CurrentDatabase
  Set doc = New NotesDocument( db )
  doc.Form = "Memo"
  doc.SendTo = Evaluate([email protected]:"你自己的Notes ID":"}+session.EffectiveUserName+{"}) 'session.EffectiveUserName
  doc.Subject = "Owner, user, effective user, on behalf of"
  Set body = New NotesRichTextItem(doc, "Body")
  Call body.AppendText("Owner = " & agent.Owner)
  Call body.AddNewLine(1)
  Call body.AppendText("User = " & session.UserName)
  Call body.AddNewLine(1)
  Call body.AppendText("Effective user = " & _
  session.EffectiveUserName)
  Call body.AddNewLine(1)
  Call body.AppendText("OnBehalfOf = " & agent.OnBehalfOf)
  Call doc.Send( False )

End Sub
  相关解决方案