2012-10-13 49 views
1

在保存文档时,我正在运行正在执行.save()的SSJS,然后我希望将文档链接(URL)包含在通知电子邮件的正文中通过使用context.getUrl()发送。获取未保存文档的URL或文档ID

这适用于已保存的文档,因为它在doc打开时在URL中具有doc id,但不适用于新文档。有没有办法为没有ID的新文档做到这一点?

回答

2

您必须自己构造URL(因为您已知),因此无法使用context.getUrl()方法。

所以你.save()之后,你可以做类似如下:

var docUrl = context.getUrl().toString().split(view.getPageName())[0] + "/" + database.getFilePath() + view.getPageName() + "?action=openDocument&documentId=" + document.getNoteID(); 

context.getUrl().toString().split(view.getPageName())[0]部分应根据David Leedys xpagescheatsheet.com URL test给你的主机名和数据库文件路径。然后我添加当前的XPage名称和openDocument和docid参数。

+0

谢谢!经过一些测试,我最终使用了以下代码:var docUrl = facesContext.getExternalContext()。getRequest()。getRequestURL()。toString()+“?action = editDocument&documentId =”+ currentDocument.getNoteID() –

+2

Ryan:不要使用NodeID。如果你的管理员运行一个压缩-c,nodeid就会改变。使用universalid – stwissel

+0

谢谢斯蒂芬。结束使用:var docUrl = facesContext.getExternalContext()。getRequest()。getRequestURL()。toString()+“?action = editDocument&documentId =”+ currentDocument.getDocument()。getUniversalID(); –

1

另一种可能性:如果您在文档背后有一个表单,而属性“打开XPage”,则可以使用http://server/database.nsf/0/universalid语法。如果文档中具有唯一标识符,则还可以使用按该标识符排序的视图,并使用http://server/database.nsf/sortedview/sortkey。通过排序视图,您可以在保存前预测URL。