JSR-286 ポートレットのイベントとパブリックレンダリングパラメータのカスタマイズ¶
注釈
ビューをウィジェットとして公開する機能は非推奨であり、Denodo Platform の今後のメジャーバージョンで削除される可能性があります。
非推奨のすべての機能のリストについては、「 Denodo Platform 8.0 で非推奨となった機能 」のセクションを参照してください。
ここでは、Denodo ポートレットで公開および処理できるイベントとパブリックレンダリングパラメータ (以下「PRP」) の名前を変更する手順について説明します。これは、JSR-286 ポートレットにのみ適用されます。
Denodo ポートレットは、公開するビューの各フィールドに対応するイベントを処理および公開します。また、ビューの各フィールドについて、PRP の値を読み取って別の PRP の値を設定します。
たとえば、 account_name
という名前のフィールドがあるビューを Denodo ポートレットで公開する場合、ポートレットは、 Input_account_name
イベントを処理して、 Selected_account_name
イベントを公開します。さらに、PRP Input_account_name
の値を読み取って、PRP Selected_account_name
の値を設定します。
ポートレットは、 Input_account_name
イベントを受信すると、データを取得するために実行するクエリの WHERE
句に条件を追加します。つまり、「 SELECT ... FROM ... WHERE account_name =
<value received from the event>」のようになります。
ユーザーがポートレットのリンクをクリックして行を選択すると、ビューの各フィールドに対応するイベントが 1 つずつポートレットによって公開されます。各イベントには、選択したセルのフィールドの値が含まれています。これらのイベントの名前は Selected_<field name>
です。
イベントとパラメータの名前をカスタマイズして、別のポートレットのイベントと RPR と同じ名前にすることができます。このカスタマイズは、 イベントの関連付け をサポートしないポータルに Denodo ポートレットをデプロイする場合に必要です。
これらの名前のカスタマイズ方法について、例を示して説明します。
以下の 2 つのウィジェットをデプロイするものとします。
internet_inc ビューを公開するウィジェット。このビューには iinc_id という名前のフィールドがあります。
phone_inc ビューを公開するウィジェット。このビューには pinc_id という名前のフィールドがあります。
ポートレット「internet_inc」が公開する「Selected_iinc_id」イベントを、ポートレット「phone_inc」が処理できる「Input_PINC_ID」イベントにマッピングする手順について説明します。
以下の手順に従って実施してください。
「internet_inc」ビューと「phone_inc」ビューをウィジェットとして公開します。生成される war ファイルは URL
https://<host name of the Denodo server>:9090/export/
にあります。phone_inc.war
のportlet.xml
ファイル (この war ファイルの/WEB-INF/
ディレクトリにあります) を編集します。「phone_inc」は「internet_inc」によって送信されるイベントを受信するポートレットであることに注意してください。
以下の変更を行います。
<preference>
で<name>IPC_NAME_PINC_ID</name>
を探して、Input_PINC_ID
をSelected_iinc_id
に置き換えます。これは、ポートレットinternet_inc
によって送信されるイベントの名前で、phone_inc
でこれを処理します。つまり、以下のようにテキストを置き換えます。置き換え前のテキストは次のとおりです。<preference> <name>IPC_NAME_PINC_ID</name> <value>Input_PINC_ID</value> <value>Selected_PINC_ID</value> <read-only>true</read-only> </preference>
これを次のテキストに置き換えます。
<preference> <name>IPC_NAME_PINC_ID</name> <value>Selected_iinc_id</value> <value>Selected_PINC_ID</value> <read-only>true</read-only> </preference>
IPC_NAME
で始まる設定の 1 つ目の<value>
は、処理するイベントと PRP の名前をフィールドの名前にマッピングします。デフォルト値はInput_PINC_ID
です。これは、ポートレットがInput_PINC_ID
という名前のイベントを受信すると、ポートレットが実行するクエリに条件を 1 つ (つまり、「PINC_ID=
<value sent by the event>」) を追加することを意味します。この設定の 2 つ目の
<value>
は、公開されるイベントと PRP の名前で、選択された行のPINC_ID
フィールドの値が含まれます。<qname> Input_PINC_ID
を含む<supported-processing-event>
エレメントを検索します。Input_PINC_ID
をSelected_iinc_id
に置き換えます。<supported-public-render-parameter>Input_PINC_ID</supported-public-render-parameter>
エレメントを検索します。Input_PINC_ID
をSelected_iinc_id
に置き換えます。<qname> Input_PINC_ID
を含む<event-definition>
エレメントを検索します。Input_PINC_ID
をSelected_iinc_id
に置き換えます。<identifier> Input_PINC_ID
を含む<public-render-parameter>
エレメントを検索します。<qname>
エレメントと<identifier>
エレメントで、Input_PINC_ID
をSelected_iinc_id
に置き換えます。
phone_inc.war
のportlet.xml
を新しいファイルに置き換えます。2 つのポータルの war ファイルを通常の方法でデプロイします。