通过doc.remove()方法在XPages中删除文档时抛出异常



我在xp:repeat中添加了一个Delete链接,用于删除该行的文档,并使用"rowVar"作为repeat访问其文档条目的变量。

下面是repeat中Delete链接的代码:
  <xp:link escape="true" id="link2"
                style="width:50.0px;display:inline-block" text="Delete">
                <xp:eventHandler event="onclick" submit="true"
                    refreshMode="partial" refreshId="panelChemLog" immediate="true">
                    <xp:this.action><![CDATA[#{javascript:
                    var deleteUNID = rowVar.getUniversalID();
                    println(deleteUNID);
                    var doc:NotesDocument = database.getDocumentByUNID(deleteUNID);
                    println(doc.getCreated() );
                    doc.remove(true);
                   }]]></xp:this.action>
                </xp:eventHandler>
            </xp:link>

我包含了println语句,我可以在日志中看到设置了deleteUNID和doc对象,但是代码在最后的doc.remove(true)语句上抛出了这个异常:

 Script interpreter error, line=5, col=5: [TypeError] Exception occurred calling method NotesDocument.remove(boolean) null

如何编写Delete链接以删除repeat中行中的文档?

这个错误我已经见过好几次了。只是为了确定一下。如果用户没有删除权限,它将抛出这样一个无意义的错误。

如果您查看Java堆栈跟踪,您可以在跟踪的底部确认以下内容。

NotesException: Notes error:您没有权限执行该操作操作

您可以使用database.queryAccessPrivileges(...)方法来确保代码。

最新更新