次のようなカスタム コントロール上のデータ ソースを使用して、ローカルに (サーバー上ではなく) 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
が、. どうやら (?) レジストリを読み取って Notes.ini からのデータ パスを見つけ、それをファイルパスと照合し、一致するものが見つからない場合は、一致するまで dir ファイルを探す必要があります。より良いアイデアを受け入れる:-)NotesDatabase.getFilePath
E:\customers\stuff\shiny