我有个需求如下:
有个数据库,每天特定时间需要进行统计,然后将所有文档删除。
但是每天对此数据库中文档进行操作的用户,都没有删除文档的权限。
尝试过设置一个代理,把运行代表写成有删除权限的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