gpt4 book ai didi

java - 如何在 Lotus Notes 5 中查找最近修改的文档

转载 作者:行者123 更新时间:2023-11-30 06:20:29 25 4
gpt4 key购买 nike

我想做的是通读 lotus notes 5 并将其中的所有文档导出到本地 modeshape 存储库,但是一旦我读完所有百万条记录/文档,该过程就会从 lotus notes 中的第一条记录开始读取但我不想要那个。我只需要阅读莲花笔记中最近修改的文档。

我的函数看起来像这样:

public void run() {
logger.log(Level.INFO, "entering run");
try {
String pathToFolder = "";
s = NotesFactory.createSession(host, "username", "password");
Database db = s.getDatabase("", nsffilename);
if (!db.isOpen()) {
db.open();
}
DocumentCollection docCol = db.getAllDocuments();
Document doc = docCol.getFirstDocument();
while (doc != null) {
doc = docCol.getNextDocument();
}
}
}

我在网上找到了一些代码,贴在这里: http://www-12.lotus.com/ldd/doc/domino_notes/7.0/help7_designer.nsf/f4b82fbb75e942a6852566ac0037f284/c698b5888603d5cd8525704a00417105?OpenDocument

但这只适用于 lotus notes 8 及以上版本。但我坚持使用莲花笔记 5。如果有什么方法可以在 Lotus Notes 5 中获取最近修改的文档,请告诉我。

最佳答案

创建一个 View ,第一列 @Modified 按降序排列,并使用 View 类读取所有文档 - 最后修改最先。

  ...
View view = db.getView("YourViewSortedByLastModified");
view.setAutoUpdate(false);
Document tmpdoc;
Document doc = view.getFirstDocument();
while (doc != null) {
// do with your doc what you want
tmpdoc = view.getNextDocument(doc);
doc.recycle();
doc = tmpdoc;
}

您可以在到达上次运行的文档时中断 while 循环。

不要出于性能原因,在您的 View 选择公式中包含任何提供当前时间或日期的函数,如@Now 或@Today。最好列出所有文档并在到达上次运行的文档时停止循环。

DocumentCollection 中的文档顺序是不确定的。通常最旧的文件排在第一位,但您不能依赖这一点。如果您遍历 View,文档在 View 中的顺序将保持不变。

关于java - 如何在 Lotus Notes 5 中查找最近修改的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21789616/

25 4 0
文章推荐: java - “锚定”组件位于 GridBagLayout 中一行组件的右侧
文章推荐: Java future 池化