我正在使用Lotus Notes 6.5.1Java API读取一个.nsf文件。.nsf文件中的每个文档都有多个文档历史记录。在使用Lotus Notes Java API遍历.nsf文件中的文档时,我获得了作为单独文档的所有文档版本。
如何确保Lotus Notes只检索每个文档的最新版本?有没有一种方法可以唯一地将文档及其所有版本历史标识为其子文档?
发布于 2009-02-27 11:00:50
Notes Domino中有一个用于文档版本控制的内置特性。根据它在数据库设计中的配置方式(假设数据库开发人员没有滚动自己的版本),版本要么是对原始父版本的响应,要么是相反的版本,其中新版本成为父版本,而旧版本则是响应。
但是,所有这些操作都是在编辑文档时自动在数据库中设置响应层次结构。数据库设计的其余部分如何与此层次结构交互取决于开发人员。
您可能想要创建一个仅显示响应层次结构顶部的文档的视图。然后,您可以遍历该视图,并知道从该视图获得的文档是最新版本。
因此,如果您有使用表单“文章”创建的文档,则视图选择公式将为。
SELECT form*="Article" & !@IsAvailable($ref)这将选择所有不是响应的文章文档。现在,在代码中,您可以简单地打开视图并遍历它。
一旦你拥有了一个文档的句柄,你就可以通过
doc.getResponses()这将返回一个DocumentCollection,您可以向下递归查找对响应的响应。您不能直接获取父文档。首先需要用doc.getParentDocumentUNID()获取它的id,然后调用db.getDocumentByUNID()。当然,您可以将它们组合在一起:
db.getDocumentByUNID(doc.getParentDocumentUNID())在任何情况下,您都必须查看您的数据库实际在做什么,它最初是如何设计的,并与之相适应。
https://stackoverflow.com/questions/591693
复制相似问题