从另一个数据库链接

时间:2012-02-15 21:08:11

标签: xpages

我在xpage上有一个数据视图,指向不同服务器上的数据库视图。我可以打开记录。而不是打开记录,我想从视图中启动该记录中的附件。

视图中记录的URL是: http://servername/home.nsf/manual.xsp?databaseName=baseservername!!dc.nsf&documentId=D28E5520C520062885257862006697AE&action=editDocument

我想从SSJS中的函数获取视图条目的URL,然后解析基本服务器名称,数据库名称,文档ID并创建这样的URL

http://servername/home.nsf/xsp/.ibmmodres/domino/OpenAttachment/baseservername!!Dc.nsf/D28E5520C520062885257862006697AE/body/testing.pdf

有关如何获取记录网址的任何提示? imbmmodres也可以启动附件而不是下载吗?

2 个答案:

答案 0 :(得分:1)

我让它工作,并且能够下载附件但无法启动附件。我使用了以下代码:

function getBaseURL() {
var curURL = context.getUrl();
var curAdr = curURL.getAddress();
var rel = curURL.getSiteRelativeAddress(context);
var step1 = curAdr.substr(0,curAdr.indexOf(rel));

// Now cut off the http
var step2 = step1.substr(step1.indexOf("//")+2);
var result = step2.substr(step2.indexOf("/"));
return result;   
}
baseURL=getBaseURL();// this function from stephen wissell
var d:NotesViewEntry=curRow;
var db=d.getDocument().getParentDatabase()
var fn=db.getFileName();
var baseserver=db.getServer();
var unid:string = curRow.getUniversalID();
var attNames = curRow.getColumnValue("AttachmentNames");

return baseURL + "/xsp/.ibmmodres/domino/OpenAttachment/"    +baseserver+"!!"+fn+"/"+unid+"/LaunchField/"+attNames;

getURLgetnotesurlgethttpURL只返回副本id,而不是服务器名称,因此它们不会为目的服务

答案 1 :(得分:0)

var address1 = viewvar.getDocument()。getURL()

然后你可以使用该对象的getHost()或getAddress()来获取你需要的部分

address1.getHost()+ ...