0

参照されているドキュメントの「キー」を含むドキュメントがあります。UNIDを使用しないのには理由があります。このキー値でデータソースを初期化したい。そのため、ドキュメントIDプロパティで、ビューを開き、指定されたドキュメントを検索し、検索されたUNIDを使用してデータソースを初期化するスクリプトを記述します。これは最適な解決策ではないと思います。

質問:キー値に基づいてドキュメントデータソースを初期化するためのより良い方法はありますか?

サンプルコード:

@DbLookup("", "view", "key", 1, '[RETURNDOCUMENTUNIQUEID]');
4

3 に答える 3

1

ビューでドキュメントの UNID をキーで検索するのが、おそらく最善の方法です。ただし、キャッシュとして機能するマネージド Bean を作成することで、繰り返しの呼び出しを少し高速化できます。たとえば、java.util.Map を実装する Java クラスを作成し、ほとんどのメソッドをスタブ化して、キーをパラメーターとして受け取る .get(...) メソッドを実装した場合、( Bean を「DocKeyManager」と呼ぶと仮定します):

<xp:dominoDocument ... documentId="${DocKeyManager[someKey]}"/>

そうすれば、.get(...) 呼び出しからの値をキャッシュでき、毎回データベースにアクセスする必要がなくなります。また、ルックアップ アルゴリズムを後で変更することもできます。

于 2012-09-28T22:19:00.527 に答える
0

これは頻繁に行いますが、動的 (# タグ) ではなく、一度 ($ タグによるページ読み込み時) ルックアップを行うことを忘れないでください。

動的に行うと、複数のルックアップを行うことになります。. .

検索結果をキャッシュするという Jesse Gallagher の提案も良い考えです。

于 2012-09-30T07:50:42.710 に答える
0

文字列の MD2 への変換に関する Tims の記事をご覧ください。このようにして、文字列 ID を unid に変換し、getDocumentByUnid を使用してそれらにアクセスできると思います

http://xmage.gbs.com/blog.nsf/SearchResults?OpenNavigator&Query=md2

于 2012-09-28T12:28:38.360 に答える