Lotus Notes:检查文档是否被用户打开

Lotus notes: check if a document is open by user

在 lotus notes 6.5 中是否有一种方法可以检查用户是否打开了文档以避免文档复制冲突?

现在为了解决这个问题,我在每个文档的 queryopen 中这样做:

    Dim doc As NotesDocument
    Set doc=source.Document
    doc.opened="yes"    
    Call doc.Save(True,False)   

并在查询中关闭:

    Dim doc As NotesDocument    
    Set doc=source.Document
    doc.opened="no"
    Call doc.Save(True,False)

然后我检查该字段以了解文档是否打开。 还有其他解决方案吗?

这是 "Document locking" 的典型案例。只需在数据库-属性中启用它,您甚至不需要一行代码,它会简单地工作。

不幸的是,您使用了 "ancient" 软件(软件是 2003 年的,支持终止是在 2010 年 4 月)并且文档锁定是一项新功能并且有一些 "glitches":

文档可能会保持锁定状态,尽管没有人再编辑它们。但是您可以轻松地手动修复该问题(管理员可以右键单击并解锁文档)或通过夜间代理:

If doc.Lockholders(0) <> "" then call doc.unlock()

在较新版本的 IBM Notes(以前称为 Lotus Notes)中,锁定更加稳定,您真的应该考虑更新...