在保存文档时,我正在运行正在执行 .save() 的 SSJS,然后我希望将文档链接 (URL) 包含在使用 context.getUrl() 发送的通知电子邮件的正文中。
这适用于已经保存的文档,因为它在打开文档时在 URL 中有文档 ID,但不适用于新文档。有没有办法为还没有 ID 的新文档完成此操作?
在保存文档时,我正在运行正在执行 .save() 的 SSJS,然后我希望将文档链接 (URL) 包含在使用 context.getUrl() 发送的通知电子邮件的正文中。
这适用于已经保存的文档,因为它在打开文档时在 URL 中有文档 ID,但不适用于新文档。有没有办法为还没有 ID 的新文档完成此操作?
You have to construct the URL yourself since (as you already know) the context.getUrl() method can not be used.
So after your .save() you could do something like the following:
var docUrl = context.getUrl().toString().split(view.getPageName())[0] + "/" + database.getFilePath() + view.getPageName() + "?action=openDocument&documentId=" + document.getNoteID();
The context.getUrl().toString().split(view.getPageName())[0]
part should give you the hostname and database filepath according to David Leedys xpagescheatsheet.com URL test. I then add the current XPage name and the openDocument and docid parameters.
另一种可能性:如果文档后面有一个表单,并且属性“改为打开 XPages”,则可以使用该http://server/database.nsf/0/universalid
语法。当您的文档中有唯一标识符时,您还可以使用按该标识符排序的视图并使用http://server/database.nsf/sortedview/sortkey
. 使用排序视图,您可以在保存之前预测 URL。