2012-02-15 168 views
0

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

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

我想从SSJS函数获取视图进入这个URL,然后解析基础服务器名称,数据库名称,文件ID和创建这样

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

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

回答

0

VAR地址1 = viewvar.getDocument()的getURL()

那么你可以使用和getHost()或的getAddress()从该对象得到你需要

address1.getHost部分()+ ...

+0

的getURL或gethttpurl或getnotesurl不会给数据库所在的其他服务器的服务器名称。他们只是给副本ID – user1186272 2012-02-16 15:35:33

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而不是服务器名称,因此他们不这样做服务器的目的