【发布时间】:2020-09-15 11:56:39
【问题描述】:
我有一个 Xpage,其访问权限设置为公开,供客户填写表格。当我向客户发送页面链接并且他们第一次打开它时。一切运行顺利。但是,如果他们关闭浏览器并再次单击链接,他们会收到此错误:
{意外的运行时错误
运行时遇到意外错误。
错误来源
页面名称:/xpClientForm.xsp
例外
无法打开文档
通用 ID 无效}
我使用 switch facet 在表单之间循环,具体取决于客户端类型。 domino 文档 ID 存储在 sessionScope beforepageload 中,文档根据 sessionScope 变量动态计算它。
代码如下:
页面加载前的 SessionScope 分配
var cData = getClientData(id);
sessionScope.docId = cData.docID;
文档数据源
<xp:panel style="height:100px" id="pnlDocData">
<xp:this.data>
<xp:dominoDocument var="document1"
formName="frmA" action="editDocument"
documentId="#{javascript:sessionScope.docID;}" scope="request">
</xp:this.data>
</xp:panel>
但是,当我在没有公共访问权限的页面上执行此自定义控件时。无论我打开链接多少次,它都能正常运行。
任何帮助将不胜感激。
【问题讨论】:
-
通用id是怎么计算的?
-
在单独的 xpage 上创建文档时。通用 ID 保存到该客户端名称下的 sql 表中。发送给客户端的链接具有该表行的唯一 ID,该行被解析为 url 参数。然后我使用该参数进行 sql 调用并获取保存的通用 ID。
-
错误提示:无效的通用 ID。你确定通用ID是正确的吗?在你的 beforepageload 事件中打印出来并检查。
-
已经打印出来了。一切都是正确的。将其缩小到公共访问用户对多米诺文档的安全访问。但不知道如何绕过这个。已将所有文档提供给公共访问用户。还尝试了 Tawmess 在This Question 上的答案。这在我直接调用 getDocumentByUNID() 时有效,但在我计算上面看到的值时无效。 @PerHenrikLausten。
-
答案由@Tawmess 在This Question 上找到。
标签: xpages lotus-notes xpages-ssjs