在我第一次运行时,我能够从我的笔记数据库中获取所有笔记文件,这是" db.nsf"。
我的问题是下次我将运行同一个班级,那时我只想从上次开始new notes documents
。
有任何最佳方法可以做到这一点,我试图搜索解决方案,但没有得到。
如果有人帮助我会很好。
答案 0 :(得分:1)
通过假设示例来解释这一点,这可能会对你有帮助。
第一步:处理来自" db.nsf"该时间按replaceItemValue("check"," done");
第二步:创建未处理的视图(包含新文档)并设置此公式:Select !(check = "done")
然后在未经处理的视图中,您将获得新创建的文档或未处理的文档(不包含完成字段)
答案 1 :(得分:1)
只需保存上一次运行的日期时间,然后使用Database.Search()
方法。将第一个参数设置为“@All”,将第二个参数设置为该日期时间。 NSF文件包含允许API优化此查询的结构,因此Database.Search()
缓慢的传统观念不适用。
该方法将返回DocumentCollection
,其中包含自上次运行以来创建或修改的所有文档。如果要排除已经修改但之前已经创建的那些,只需在迭代集合时对Document.Created
属性进行双重检查。
答案 2 :(得分:0)
计划代理在Domino Designer的属性部分的“基础”选项卡上具有“目标”属性。 'Target'的选项之一是'All new&修改过的文件。其他选项是“数据库中的所有文档”和“无”。
此选项将使传递到代理(Java或Lotus Script)的文档集合包含自上次运行代理以来的所有新文档或修改过的文档。
我不确定您正在处理的文档是否可能在您的应用中被修改 - 但无论哪种方式,我认为最好从这个文档集开始并标记您自己的'已处理'将NotesItem标记到您处理的文档上。
您还可以找到java DocumentCollection.StampAll方法,将标记项放在集合中的每个文档上。