[Operations] タブ¶
このタブには、サービスによって公開されている操作のリストが表示されます。
このダイアログでは、Web サービスの名前の変更 (Web サービスの作成時のみ)、入出力パラメータの名前の変更または削除、操作の改ページのサポート (「 Pagination Support 」を参照) の追加などを実行できます。
新しい操作を追加するには、[Server Explorer] からビューをこのダイアログにドラッグします。ビューは、別のデータベースに属していてもかまいません。これにより、そのクエリ機能が分析されて、Web サービスの「操作候補」が生成されます。これらの操作には、以下の特性があります。
生成される操作の入力パラメータは、ビューのフィールドに対応します。
SELECT
操作の戻り値は、エレメントの配列です。この配列の各エレメントは、ビューの 1 行に対応し、各フィールドに対応するサブエレメントが 1 つずつ存在します。ビューが更新可能な場合 (『VQL ガイド』の「 ビューに対する挿入、更新および削除 」を参照)、このビューから行の挿入、更新、および削除を実行するための操作が生成されます。具体的には、以下の操作が生成されます。
挿入操作。ビューのフィールドごとに 1 つのパラメータがあります。操作には、「insert」の後にビューの名前を付加した名前が付けられます。
削除操作。ビューのフィールドごとに 1 つのパラメータがあります。操作には、「delete」の後にビューの名前を付加した名前が付けられます。
更新操作。ビューのフィールドごとに 2 つ のパラメータがあります。1 つはフィールドの名前の付いたパラメータで、もう 1 つはフィールドの名前に接頭辞「New」が付いたパラメータです。接頭辞「New」が付いたパラメータは、新しい値に対応します (
UPDATE
ステートメントのSET
句)。この接頭辞の付いていないパラメータは、更新するタプルを選択するために使用します (UPDATE
ステートメントのWHERE
句)。操作には、「update」の後にビューの名前を付加した名前が付けられます。
Web サービスの操作に対して以下の変更を実行できます。
操作またはそのパラメータの名前を変更する: 操作またはパラメータを右クリックして [Rename] をクリックします。
複合パラメータ (レジスターまたは配列) の型名を変更する: パラメータを右クリックして [Rename type] をクリックします。型名が非常に長く、この Web サービスを操作するクライアントが影響を受ける場合、名前の変更が必要になることがあります。
サーバーに送信されるクエリを構築するために使用する演算子と、この入力パラメータに渡される値を選択する: 入力パラメータの名前の横にある演算子をクリックして新しい演算子を選択します。これは、操作のパラメータ
P
の演算子として<=
を選択した場合、クライアントがこの操作を呼び出したときにサーバーに送信されるクエリがSELECT ... WHERE P <= <value>
のようになることを意味します。複数の入力パラメータの演算子を一度に変更するには、パラメータを選択して右クリックし、[Change operator] をクリックします。選択した新しい演算子は、それを受け入れ可能なパラメータに適用されます。複数の操作またはパラメータを選択するには、Ctrl キーまたは Shift キーを押しながら各操作をクリックします。
操作またはそのパラメータを削除する: 操作またはパラメータを右クリックして [Drop] をクリックします。
以下に該当する場合は、操作のパラメータを削除することはできません。
このパラメータに関連付けられたフィールドを、このパラメータが必須であるデータソースから取得している場合。たとえば、URL に補間変数が含まれる JSON データソースからデータを取得するビューを公開している場合です。
公開しているビューでビューパラメータが使用されている場合。
操作のツリーでエレメントを検索するには、 Ctrl+F キーを押します。
Web サービスで入出力パラメータが多い操作がある場合、Virtual DataPort ではサービスのデプロイ時にエラーを返します。この理由でデプロイに失敗すると、 <DENODO_HOME>/logs/vdp/vdp.log
ファイルに以下のメッセージが表示されます。
Internal error compiling source files
Web サービスを分割して、再度デプロイしてください (Java では 64 KB を超えるメソッドを生成できないため、大きな操作が多いと Web サービスのデプロイ時にこのエラーが発生します)。
改ページのサポート¶
大量のデータを返す操作を伴う Web サービスを定義する場合、すべてのデータを同時に取得するのを避けるため、結果を改ページしなければならないことがあります。改ページ機能を使用すると、クライアントはまず最初の 1,000 件の結果をリクエストし、その後で次の 1,000 件というように結果をリクエストすることができます。さらに、Web サービスによって返される行数をクライアントが制限することもできます。
改ページのサポートは操作ごとに追加します。つまり、1 つの Web サービスに複数の操作が存在する場合、すべての操作で改ページがサポートされているとは限りません。
操作に改ページを追加するには、操作を右クリックして [Add pagination] をクリックします。2 つの新しいパラメータ COUNT
と START_INDEX
が操作に追加されます (これらのパラメータの名前は変更可能です)。
COUNT
は、操作によって返される行の数を制限します。START_INDEX
は、結果の0
行目から<START_INDEX>
行目までをスキップします。
これらの 2 つのパラメータはオプションです。パラメータの値が設定されていない場合、操作はその結果をすべて一度に返します。
クライアントが START_INDEX
パラメータと COUNT
パラメータを渡した場合、操作は行番号 <START_INDEX>
(最初の行は 0
) から <COUNT>
行を返します。
クライアントが COUNT
パラメータだけを渡して、 START_INDEX
パラメータを渡さない場合、Web サービスは結果の最初の <COUNT>
行を返します。
クライアントが START_INDEX
パラメータだけを渡して、 COUNT
パラメータを渡さない場合、Web サービスは結果の <START_INDEX>
行目からすべての行を返します。
後で改ページのサポートを操作から解除する必要が生じた場合、入力パラメータ COUNT
と START_INDEX
を右クリックして [Drop] をクリックします。
結果の並べ替え¶
デフォルトでは、Web サービスの操作は、公開されているビューで順序が設定されている場合は、その順序でデータを返します。ただし、必要に応じて、Web サービスのクライアントが順序を指定できます。このためには、操作を右クリックして [Add order by] をクリックします。特殊なタイプの入力パラメータ「ORDER_BY」が追加されます (この属性の名前は変更可能です)。
Web サービスのクライアントが操作の結果を並べ替えたい場合、次の構文を使用してパラメータ「ORDER_BY」の値を指定する必要があります。
<field name> [ ASC | DESC ] [, <field name> [ ASC | DESC ] ]*
たとえば、 iinc_id ASC, summary DESC
と指定します。
<field name>
には、ビューのフィールドの名前ではなく、操作の出力フィールドの名前を指定する必要があります。