Xpages Notes链接,用于在当前数据库中使用XPage从其他数据库打开文档

Xpages Notes链接,用于在当前数据库中使用XPage从其他数据库打开文档,xpages,xpages-ssjs,Xpages,Xpages Ssjs,我有一个带有2个数据库的应用程序。NSF1只包含设计(Xpages、脚本库等),NSF2包含所有内容,包括数据。用户只能访问NSF1,NSF2中的任何文档都将通过NSF1 XPages显示 在发送给审阅者的文档批准电子邮件中,我包含了两个链接。一个用于普通http(web浏览器)链接,另一个用于notes链接。该脚本位于NSF1中 我对http链接没有问题。它类似于以下内容,并且有效: 但我一直在构建notes链接。在我以前的应用程序中,所有内容(设计和数据)都在一个NSF中,我只需使用doc

我有一个带有2个数据库的应用程序。NSF1只包含设计(Xpages、脚本库等),NSF2包含所有内容,包括数据。用户只能访问NSF1,NSF2中的任何文档都将通过NSF1 XPages显示

在发送给审阅者的文档批准电子邮件中,我包含了两个链接。一个用于普通http(web浏览器)链接,另一个用于notes链接。该脚本位于NSF1中

我对http链接没有问题。它类似于以下内容,并且有效:

但我一直在构建notes链接。在我以前的应用程序中,所有内容(设计和数据)都在一个NSF中,我只需使用doc.getNotesURL(),就会得到如下链接:

notes://nsfserver/nsf.nsf/0/UNIDOFTHEDOCUMENT0123456789?OpenDocument

如果我使用上述方法,那么文档将使用NSF2中的XPage打开,这不是我想要的。我已经试过这个例子了,我也喜欢

notes://nsf1server/nsf1.nsf/xpage.xsp?OpenXPage&documentId=UNIDOFTHEDOCUMENTINNSF2


但对我来说这似乎不合逻辑,因为NSF2的服务器和数据库没有在链接中指定,我不知道把这两个参数放在哪里,或者链接中是否允许它们。点击链接只会导致XPage为空,因为ti不知道UNID。有人知道吗?

至少,您还需要
action
参数,因为否则数据源使用设计中指定的操作,默认情况下是
createDocument
。这将导致忽略
documentId
,因为新文档总是分配一个新ID。指定操作(例如
openDocument
editDocument
会强制数据源也查看
documentId
(如果提供,
databaseName
)要确定正在访问哪个文档。

至少还需要
action
参数,因为否则数据源使用设计中指定的操作,默认情况下是
createDocument
。这将导致忽略
documentId
,因为新文档总是分配一个新ID。指定操作(例如,
openDocument
editDocument
强制数据源也查看
documentId
(如果提供,
databaseName
)要确定正在访问哪个文档。

至少还需要
action
参数,因为否则数据源使用设计中指定的操作,默认情况下是
createDocument
。这将导致忽略
documentId
,因为新文档总是分配一个新ID。指定操作(例如,
openDocument
editDocument
强制数据源也查看
documentId
(如果提供,
databaseName
)要确定正在访问哪个文档。

至少还需要
action
参数,因为否则数据源使用设计中指定的操作,默认情况下是
createDocument
。这将导致忽略
documentId
,因为新文档总是分配一个新ID。指定操作(例如,
openDocument
editDocument
强制数据源也查看
documentId
(如果提供,
databaseName
)确定正在访问哪个文档。

我认为,当您指示数据源时,您所要做的就是指定从哪个数据库中提取数据

下面的代码片段正在共享资源数据库中自定义控件的面板中使用。您可以通过任何编程方式确定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>

这段代码不是我写的,而是团队合作解决方案的人写的。具体来说,我猜是Henry Newberry写的。这是一个相当有趣的设计的一部分——共享资源数据库中的XPages,主数据库中的数据,然后是另外两个数据库中的附件和工作流(配置和跟踪)


在我看来,XPages实际上是用于设计和数据分离,数据也是分散的(甚至可能在非Notes位置!)

我认为,当您指示数据源时,您所要做的就是指定从哪个数据库提取数据

下面的代码片段正在共享资源数据库中自定义控件的面板中使用。您可以通过任何编程方式确定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>

这段代码不是我写的,而是团队合作解决方案的人写的。具体来说,我猜是Henry Newberry写的。这是一个相当有趣的设计的一部分——共享资源数据库中的XPages,主数据库中的数据,然后是另外两个数据库中的附件和工作流(配置和跟踪)


在我看来,XPages实际上是用于设计和数据分离,数据也是分散的(甚至可能在非Notes位置!)

我认为,当您指示数据源时,您所要做的就是指定从哪个数据库提取数据

下面的代码片段正在共享资源数据库中自定义控件的面板中使用。您可以通过任何编程方式确定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>

这段代码不是我写的,而是Teamw的人写的