一直使用Notes公式来删除当前打开的文档,很长一段时间相安无事。最近有个需求,必须要编写代理来完成文档的删除工作,没想到问题就这么来了。
一开始很想当然的使用:
... set Doc = Session.DocumentContext call Doc.Remove(true) |
可是一查Domino帮助,DocumentContext不能使用Remove方法,第一个尝试失败了。
没关系,再来,能否通过其他方法取得当前文档,从而避免使用DocumentContext?于是第二次尝试如下:
... set Doc = Session.DocumentContext set DocTemp = Session.CurrentDatabase.GetDocumentByUNID(Doc.UniversalID) call DocTemp.Remove(true) |
没想到,错误依旧,这下可让人挠头了~~又查了一会儿,还是无法排除错误。最后想了想,解决方法真让人哭笑不得——使用视图搜索到所需文档,然后再删除就行了。代码最终被改成下面这个样子:
... set Doc = Session.DocumentContext set View = Session.CurrentDatabase.GetView("viewByUNID") set DocTemp = View.GetDocumentByKey(Doc.UniversalID) call DocTemp.Remove(true) |
其中viewByUNID视图选择公式Select @All,第一列显示公式为@Text(@DocumentUniqueID),指定排列顺序或分类以使用搜索。这样,就可以顺利地删除掉当前文档了。