使用Java API读取Lotus Notes文档

时间:2009-02-26 17:58:34

标签: lotus-notes lotus

我使用Lotus Notes 6.5.1 Java API来读取.nsf文件。 .nsf文件中的每个文档都有多个文档历史记录。在使用Lotus Notes Java API遍历.nsf文件中的文档时,我将所有文档版本作为单独的文档。

如何确保Lotus Notes仅检索每个文档的最新版本?有没有办法将文档及其所有版本历史记录唯一标识为其子项?

1 个答案:

答案 0 :(得分:3)

Notes Domino中有一个内置的版本控制文档功能。根据它在数据库设计中配置的情况(并假设数据库开发人员没有自己推出),版本将是对原始父级的响应,或者反过来,新版本成为父级,旧版本为响应。

但是,所有这一切都是在编辑文档时自动为数据库设置响应层次结构。数据库设计的其余部分如何与此层次结构交互取决于开发人员。

您可能要做的是创建一个仅在响应层次结构顶部显示文档的视图。然后,您可以遍历该视图,并知道您从中获取的文档是最新版本。

因此,如果您使用“Article”形式创建文档,则视图选择公式将为。

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

选择所有不响应的文章文档。现在在代码中,您只需打开视图并遍历它即可。

一旦掌握了文件,就可以通过

获得儿童的直接回复
doc.getResponses()

这将返回DocumentCollection,您可以在其中找到对响应的响应。您无法直接获取父文档。您首先需要使用doc.getParentDocumentUNID()获取其ID,然后调用db.getDocumentByUNID()。当然你可以把它结合起来:

db.getDocumentByUNID(doc.getParentDocumentUNID())

在任何情况下,您都必须查看数据库实际正在做什么,它最初是如何设计的,并且与之相符。