我有2个数据库的应用程序。 NSF1仅包含设计(Xpages,脚本库等),NSF2包含所有内容,包括数据。用户只能访问NSF1,NSF2中的任何文档都将通过NSF1 XPages显示。
在发送给审核人的文件批准电子邮件中,我包含2个链接。一个用于普通的http(Web浏览器)链接,另一个是notes链接。脚本fr在NSF1中。
我对http链接没有问题。它类似于以下内容并且有效:
但我坚持构建笔记链接。在我之前的应用程序中,一个NSF中的所有内容(设计和数据),我可以使用doc.getNotesURL(),我将获得如下链接:
注释://nsfserver/nsf.nsf/0/UNIDOFTHEDOCUMENT0123456789开放文档
如果我使用上面的方法,那么文档将使用NSF2中的XPage打开,这不是我想要的。我试过了here这个例子并像我一样做了
注释://nsf1server/nsf1.nsf/xpage.xsp OpenXPage&安培; documentId = UNIDOFTHEDOCUMENTINNSF2
但这对我来说似乎不合逻辑,因为NSF2的服务器和数据库没有在链接中指定,我不知道在哪里放置这两个参数,或者它们是否甚至被允许在链接中。单击该链接只会导致XPage为空,因为ti不知道UNID。所以任何人都有任何想法?
答案 0 :(得分:2)
至少,您还需要action
参数,否则数据源将使用设计中指定的操作,默认情况下为createDocument
。这将导致忽略documentId
,因为始终为新文档分配新ID。指定操作(例如openDocument
或editDocument
会强制数据源也查看documentId
(如果提供,databaseName
)以确定正在访问哪个文档。< / p>
答案 1 :(得分:1)
我相信,当您指明数据源时,您需要做的就是指定您从哪个数据库中提取数据来源。
以下代码片段在我们的共享资源数据库的自定义控件的面板中使用。您可以以任何编程方式确定documentId,包括将其作为Notes URL中的参数传递。数据库名称也是如此。
<xp:this.data>
<xp:dominoDocument var="poDoc" formName="PurchaseOrder"
action="editDocument" documentId="#{javascript:sessionScope.newPODocUNID}">
<xp:this.databaseName><![CDATA[#{javascript:getDb("tamisDb")}]]></xp:this.databaseName>
</xp:dominoDocument>
</xp:this.data>
这段代码不是由我编写的,而是由Teamwork Solutions的人员编写的。具体来说,我的猜测是Henry Newberry写的。它是一个相当有趣的设计的一部分 - 共享资源数据库中的XPages,主要数据,然后是其他两个数据库中的附件和工作流程(配置和跟踪)。
在我看来,XPages实际上是用于设计和数据分离,数据也是分散的(甚至可能在非Notes位置!)