我有一个 XPiNC 本地复制(不在服务器上)应用程序,其数据源位于自定义控件上,如下所示:
<xp:dominoDocument var="document1"
formName="demo"
databaseName="#{javascript:getDemoData();}"
action="openDocument"
documentId="#{compositeData.unid}">
</xp:dominoDocument>
在我的 JavaScript 中,我有以下功能:
function getDemoData() {
return "12345678:9ABEDEFF";
}
这将返回包含我的数据的数据库的副本 ID(在实际代码中,它不是硬编码的,而是从配置中读取的,但这不是这里的问题)。
据我所知(这可能是错误的),在提供此副本语法时,我无法指定服务器名称。事实证明这是一场机会游戏。有时数据库在服务器上打开,有时在客户端上打开。我认为这是基于 desktop8.dsk 并且哪个复制图标堆叠在顶部(?)。
我的问题:
如果本地副本可用,我如何确保首先打开本地副本?
澄清:
本地机器上的 NotesDatabase.getFilePath() 返回该文件的绝对文件路径(在服务器上它是相对的)。使用 dirlink 文件后,绝对路径与相对路径完全不同。示例:C:\Notes\Data
包含的development.dir
文件E:\customers\stuff
需要添加为路径development\shiny.nsf
,但NotesDatabase.getFilePath
会返回E:\customers\stuff\shiny
. 所以看起来(?)我必须读取注册表以从 Notes.ini 中找到数据路径,然后根据文件路径检查它,当没有匹配项时,去寻找 dir 文件,直到找到匹配项。
接受更好的想法:-)