ShowTable of Contents
XPages で定義したデータソースは、基本的にはプロパティに指定された情報に基づき動作します。
しかしながら設定の一部に関しては、データソースを定義している XPage をアクセスする URL のクエリー文字列で指定される
パラメータにより、外部から変更することが可能です。
シリーズ目次:
XPage をアクセスする URL
XPage をブラウザからアクセスする際には、ページの名前を含む以下のような形式の URL を利用します。
http://サーバー名/NSFファイル名.nsf/XPage名.xsp
URL はクエリー文字列を持つことが可能で、XPage アプリケーションでも利用されています。
例えば、ビューコントロールの「列をリンクとして表示する」オプションは、 URL パラメータを利用して動作しています。
ビューから文書を選択した際に遷移先ページをアクセスするための例が以下のような URL です。
開くべき Domino 文書の UNID およびオープンモードが指定されています。
http://appsrv.corp.com/DataSrc.nsf/form.xsp?documentId=0EC1BCE7EC8417E14925797C004EB107&action=openDocument
指定されているパラメータは、アクセスされた XPage 内で定義されたデータソースが受け取り処理を行います。
パラメータによる指定は、データソースのプロパティ設定による指定をオーバーライドします。
Domino 文書データソースがサポートする URL パラメータ
Domino 文書タイプのデータソースは、以下のパラメータを処理します。
パラメータ | 役割 |
action | 文書を開く際のアクションを指定します。
newDocument: 新規文書を作成します。
openDocument: 既存文書を読み込みモードで開きます。
EditDocument: 既存文書を編集モードで開きます。
openDocument/EditDocument を指定した場合でも、
同時に documentId を指定しない場合には新規文書の作成となります。 |
databaseName | 対象となる Domino 文書を格納するデータベース名を指定します。 |
documentId | 対象となる Domino 文書の Note ID または UNID を指定します。 |
parentId | 新規文書を既存文書の子文書として作成する場合に、親となる文書の
Note ID または UNID を指定します。 |
Domino ビューデータソースがサポートする URL パラメータ
Domino ビュータイプのデータソースは、以下のパラメータを処理します。
パラメータ | 役割 |
databaseName | 対象となる Domino ビューを格納するデータベース名を指定します。 |
viewName | オープンするビューの名前を指定します。 |
parentId | ビューに含まれるコンテンツを、特定の文書の返答文書およびその子孫に制限します。
絞込みを行う親文書の Note ID または UNID を指定します。 |
search | 全文検索の絞込みを行うための検索文字列を指定します。 |
searchMaxDocs | 全文検索結果に含める最大件数を指定します。 |
categoryFilter | ビューに含まれるコンテンツを指定したカテゴリに含まれるものだけに制限します。 |
sortColumn | ビューをソートする列名を指定します。 |
sortOrder | ビューのソート順を指定します。
ascending: 昇順に並べます。
descending: 降順に並べます。 |
expandLevel | 階層を持つビューに対し、展開して表示するレベルを指定します。
0: 全ての階層を展開して表示します。
1: 1レベルめだけを(つまり、全ての階層を省略して)表示します。
2: 2レベルめまでを(つまり、1レベルめだけを展開して)表示します。
: |
keys | ソートされた列に対して、指定した値を持つもののみに絞込みを行います。 |
keysExactMatch | keys プロパティで指定した値を完全一致で利用するかどうかを true/falseで指定します。 |
XPage が複数のデータソースを定義する場合の URL パラメータ
XPage が複数のデータソースを定義していた場合、全てのデータソースは同じ URL パラメータによってオバーライドされ、
その結果、同一の Domino 文書あるいはビューをポイントすることになってしまいます。
通常複数のデータソースを用意するのは、異なる Domino 文書あるいはビューをアクセスするためであり、
これは望ましい結果ではありません。この問題を解決するために用意されているプロパティが
ignoreRequestParam および requestpatamPrefix です。
ignoreRequestParam プロパティ
このプロパティを true にセットした場合、そのデータソースは URL パラメータによる設定を無視する、
つまり、プロパティによる設定を参照して動作します。
ビューを表示する XPage とフォームを表示する XPage があり、ビューページから文書を選択して
フォームページでそのフィールド値を表示するような典型的なアプリケーション,に対し、
2つめのデータソースをフォームページに追加して関連するDomino 文書を同時に表示させるような場合、
2つめのデータソースに対して ignoreRequestParam を true に設定します。
これにより、ビューページでの文書選択は1つめのデータソースがURL パラメータ経由で受け取って処理し、
2つめのデータソースはそれを無視して独自に計算した文書情報をアクセスするといった処理を行うことが
可能になります。
requestParamPrefix プロパティ
もうひとつのオプションが requestParamPrefix プロパティです。このプロパティを設定することにより、
データソースがパラメータを取り出すキー名を変更することができます。
例えば、2つめのデータソースの requestParamPrefix に対して "sub" を設定した場合、
subdocumentId=abc パラメータを documentId として処理するようになります。
よって例えば以下のような URL 指定することにより、
1つめのデータソースは Note ID=8FE の文書を読み込みモードでオープンし、
2つめのデータソースは Note ID=906 の文書を編集モードでオープンする
といったことを行うことができます。
http://appsrv.corp.com/DataSrc.nsf/form.xsp?documentId=8FE&action=openDocument&subdocumentId=906&subaction=editDocument