我使用Lotus Notes 6.5.1的Java API来读取。NSF文件。在.NSF文件中的每个文档有多个文档历史记录。使用Lotus Notes的Java API在.NSF文件通过文件虽然穿越,我让所有的文件版本作为单独的文档。

我如何确保只有最新的版本是由Lotus Notes中检索到的每个文档的?有没有一种方法来唯一标识一个文档及其所有版本历史记录作为其子?

有帮助吗?

解决方案

有一个内置的功能在Notes Domino的版本文件。根据怎么样了它在数据库设计配置(并假设数据库开发商没有推出自己的)的版本,将是原来的母公司,或者反过来,在新版本推出的母公司,与旧版本是响应响应。

这一切都不过是自动建立在数据库的响应层次结构,当你编辑的文件。数据库设计的其余部分如何与这个层次进行交互是由开发人员。

您可能想要做的是创建一个视图,仅显示文件的响应层次结构的顶部。然后,您可以遍历视图,并知道你从它那里得到的文件是最新版本。

因此,如果你有一个形式“条”创建的文档的视图选择公式将是

SELECT form*="Article" & !@IsAvailable($ref)

这将选择不回应所有文章文档。现在,在代码可以简单地打开视图并遍历它。

一旦你有文件上的手柄,你可以通过

获得它的直接子回应
doc.getResponses()

这会返回一个DocumentCollection您可以递归下找到对响应作出响应。你不能直接获得父文档。你首先需要获得与doc.getParentDocumentUNID() ID,然后调用db.getDocumentByUNID()。当然,你可以结合是:

db.getDocumentByUNID(doc.getParentDocumentUNID())

在任何情况下,你将不得不看看你的数据库实际上是干什么的,它是怎么最初的设计和适应这一点。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top