注释错误:读取视图条目时未在索引中找到条目

Vla*_*adP 7 lotus-notes lotus-domino xpages

我的xPage SSJS失败了:

viewEntry = view.getNext(viewEntry);
Run Code Online (Sandbox Code Playgroud)

有错误

注释错误:索引中找不到条目

我确实将此选项设置为false但它没有帮助:

view.setAutoUpdate(false);
Run Code Online (Sandbox Code Playgroud)

所以我怀疑它失败了,因为用户因为阅读器访问集而无法访问NEXT文档.因此,在视图中但在TOTALS中无法看到此类文档.怎么解决?

副问题是如果崩溃Domino服务器那么

这是我的代码:

var view:NotesView = database.getView("xxxxxxx");
view.setAutoUpdate(false);
var viewNav:NotesViewNavigator = view.createViewNav();
var viewEntry:NotesViewEntry = viewNav.getFirst();

while (viewEntry != null) {
    if (viewEntry.isCategory()){
        // I work with category entry data
    } else if(viewEntry.isTotal()){
        // I collect totals
    } else {
        // I work with view entry
    }

    var tmpEntry:NotesViewEntry = viewNav.getNext(viewEntry);
    viewEntry.recycle();
    viewEntry = tmpEntry;
}
Run Code Online (Sandbox Code Playgroud)

它失败了:viewNav.getNext(viewEntry)

Script interpreter error, line=1001, col=37: [TypeError] Exception occurred calling method NotesViewNavigator.getNext(lotus.domino.local.ViewEntry)
Notes error: Entry not found in index ((xxxxxxx))
tmpEntry:NotesViewEntry = viewNav.getNext(viewEntry);
Run Code Online (Sandbox Code Playgroud)

那么,如果当前或下一个条目无效,我该如何真正进入下一个条目呢?

Pau*_*ers 2

还可能值得验证索引中未找到哪个条目。它可能是第一个,具体取决于代码的上下文。例如,它可能已被更新以将其从视图中删除。首先检查是否为空。读者访问也可能是一个问题,如果您使用 ViewNavigator 工作,则访问的原因有不同。使用 try/catch 来验证您的假设 - sessionAsSigner(或 ODA 的本机会话)将有权访问下一个文档,这将允许日志记录进行确认。一旦确定了原因,就可以围绕它进行编码。

ViewEntry.isValid() 验证软删除或用户是否无访问权限,如 ViewEntry 和 Document 的文档中所述,两者具有相同的方法。