Oracle® Fusion Middleware Oracle Business Intelligence Publisherデータ・モデリング・ガイド 11g リリース1 (11.1.1) B66712-04 |
|
前へ |
次 |
この章では、BI Publisherデータ・モデルにパラメータと値リストを追加する方法について説明します。
この章の内容は次のとおりです。
データ・モデルにパラメータを追加することで、レポートを表示するときにユーザーがデータをやりとりできるようになります。
BI Publisherでは、次のパラメータ・タイプがサポートされます。
テキスト - ユーザーはパラメータとして渡すテキスト文字列を入力します。
メニュー - ユーザーは値リストから選択します。値リストには、指定した固定データを含めることも、定義されたデータソースに対して実行するSQL問合せを使用して作成したリストを含めることもできます。このオプションでは、複数選択、「すべて選択」オプション、およびパラメータをカスケードするための部分的なページ・リフレッシュがサポートされています。
メニュー・タイプのパラメータを作成する場合は、最初に値リストを定義してから、パラメータを定義して、そのパラメータを値リストに関連付けます。第4.4項「値リストの追加」を参照してください。
日付 - ユーザーはパラメータとして日付を選択します。データ型も日付である必要があり、形式はJava日付フォーマットである必要があります。
データ・モデルにパラメータが定義されていると、そのパラメータのレポート内での表示方法は、レポート・レベルの設定としてさらに細かく構成できます。レポート・レベルの設定の詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Publisherレポート・デザイナーズ・ガイド』のレポートのパラメータ設定を構成する方法に関する項を参照してください。
パラメータのサポートはデータ・セットのタイプに応じて異なります。SQL問合せのデータ・セットは、利用可能なパラメータ機能の完全なセットをサポートします。その他のタイプのデータ・セットは、これらの機能のすべてまたはサブセットをサポートするか、まったくサポートしないこともあります。表4-1は、それぞれのデータ・セットのタイプに応じたサポートの内容を示しています。
表4-1 データ・セットのタイプに応じたパラメータのサポート
データ・セットのタイプ | パラメータのサポート | 複数選択 | 全選択可能 | 変更時に他のパラメータをリフレッシュ |
---|---|---|---|---|
SQL問合せ |
可 |
可 |
可 |
可 |
MDX問合せ |
不可 |
不可 |
不可 |
不可 |
Oracle BI Analysis |
Oracle BI Analysisから継承 |
可(Oracle BI Dashboard経由) |
可(Oracle BI Dashboard経由) |
可(Oracle BI Dashboard経由) |
ビュー・オブジェクト |
可。ただし、ビュー・オブジェクトがサポートし、そのように設計されている場合。 |
不可 |
不可 |
可(ビュー・オブジェクト・パラメータのみ) |
Webサービス |
可 |
不可 |
不可 |
不可 |
LDAP問合せ |
可 |
不可 |
不可 |
不可 |
XMLファイル |
不可 |
不可 |
不可 |
不可 |
Microsoft Excelのファイル |
可 |
不可 |
不可 |
不可 |
CSVファイル |
不可 |
不可 |
不可 |
不可 |
HTTP(XML入力) |
可 |
不可 |
不可 |
不可 |
Oracle Endeca問合せ |
不可 |
不可 |
不可 |
不可 |
新規パラメータを追加するには:
「データ・モデル」のコンポーネント・ペインで、「パラメータ」をクリックして、「新規パラメータの作成」をクリックします(図4-1を参照)。
パラメータの「名前」を入力します。名前はデータ・セット内のこのパラメータへの参照と同じにする必要があります。
注意: パラメータ名を決定する際は、使用するデータベースの識別子に許容された最大文字数を超過してはいけません。識別子の長さの制限については、使用するデータベースのドキュメントを参照してください。 |
リストから「データ型」を選択します。「日付」データ型は、日付の「パラメータ・タイプ」のみをサポートします。その他のデータ型は、次のメニューまたはテキストの「パラメータ・タイプ」をサポートします。
文字列
整数
注意: パラメータ用の整数データ型は、64ビット符号付き整数です。値の範囲は、-9,223,372,036,854,775,808以上、9,223,372,036,854,775,807以下です。 |
ブール
日付
浮動小数値
パラメータの「デフォルト値」を入力します。長時間実行される問合せを防止するために、これをお薦めします。デフォルトのパラメータ値は、BI Publisherレイアウト・エディタを使用してレポートのレイアウトを設計する際に、レポート出力をプレビューするためにも使用されます。
「パラメータ・タイプ」を選択します。サポートされているタイプは、次のとおりです。
テキスト - ユーザーはパラメータとして渡すテキスト・エントリを入力できます。第4.2.1項「テキスト・パラメータの定義」を参照してください。
メニュー - ユーザーに値リストを提示します。第4.2.2項「メニュー・パラメータの定義」を参照してください。
日付 - 日付パラメータを渡します。「データ型」も日付にする必要があります。第4.2.3項「日付パラメータの定義」を参照してください。
注意: BI Publisherでは、テキスト入力またはメニュー(値リスト)のタイプをサポートしていますが、両方はサポートしていません。そのため、ユーザーがテキスト値を入力することも、値リストのメニューから選択することもできるような複合パラメータを定義できません。 |
行配置 - この設定では、パラメータを表示する行の数と、各パラメータを配置する行を構成します。たとえば、レポートに6つのパラメータが含まれている場合は、それぞれが先頭行になるように各パラメータを個別の行(1~6)に割り当てることも、それぞれ2つのパラメータを行1、2、3に割り当てることもできます。デフォルトでは、すべてのパラメータが行1に割り当てられます。
行配置は、レポート・レベルでも構成できます。レポート定義では、パラメータに対して追加の表示オプションをサポートしています。詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Publisherレポート・デザイナーズ・ガイド』のレポートのパラメータ設定を構成する方法に関する項を参照してください。
「テキスト」タイプのパラメータは、テキスト・ボックスを提示して、パラメータとしてデータソースに渡すテキスト・エントリを入力するようにユーザーに求めます。図4-2に、テキスト・パラメータの定義を示します。
テキスト・タイプのパラメータを定義するには:
「パラメータ・タイプ」リストから「テキスト」を選択します。下側のペインに、選択に応じた適切なフィールドが表示されます。
「表示ラベル」を入力します。表示ラベルは、レポートを表示したときにユーザーに表示されるラベルです。たとえば、Departmentなど。
「テキスト・フィールド・サイズ」に整数を入力します。このフィールドでは、テキスト・ボックスにユーザーが入力できる文字の数を決定します。たとえば、25など。
必要に応じて、次の「オプション」を有効にします。
テキスト・フィールドにカンマ区切りの値を含む - このオプションを選択すると、ユーザーはこのパラメータに対してカンマ区切りの複数の値を入力できます。データソース内のパラメータは、複数の値をサポートするように定義されている必要があります。
変更時に他のパラメータをリフレッシュ - このパラメータの値に依存する値を持つ他のパラメータをリフレッシュするために、ページの部分的なリフレッシュを実行します。
図4-3に、レポート利用者に表示されるDepartmentパラメータを示します。
メニュー・タイプのパラメータは、ユーザーに値リストを提示します。最初に、値リストを定義しておく必要があります。詳細は、第4.4項「値リストの追加」を参照してください。メニュー・タイプのパラメータは、「文字列」および「整数」のデータ・タイプのみをサポートします。
メニュー・パラメータの定義は、次のオプションを含みます。
図4-4に、メニュー・パラメータの定義を示します。
メニュー・タイプのパラメータを定義するには:
「パラメータ・タイプ」リストから「メニュー」を選択します。下側のペインに適切なフィールドが表示されます。「データ型」(「文字列」または「整数」)を選択します。
「表示ラベル」を入力します。表示ラベルは、レポートを表示したときにユーザーに表示されるラベルです。たとえば、Departmentなど。
「リストに表示する値の数」を入力します。このフィールドのエントリよりもリスト内の値の数が多い場合、ユーザーは「検索」をクリックして、表示されていない値を探す必要があります(図4-5を参照)。このフィールドのデフォルトは、100に設定されています。
このパラメータに定義した「値リスト」を選択します。
必要に応じて、次の「オプション」を有効にします。
複数選択 - ユーザーはリストから複数のエントリを選択できます。データソースは、このパラメータに対して複数の値をサポートできる必要があります。複数の選択をサポートするメニュー・パラメータの表示は別のものになります。詳細は、図4-6および図4-7を参照してください。
全選択可能 - リストに「すべて」オプションを挿入します。値リストから「すべて」を選択すると、パラメータにNULL値を渡すか、リストのすべての値を渡すかを選択できます。「NULL値が渡されました」または「すべての値が渡されました」を選択します。
注意: 「*」を使用するとNULLを渡すことになるため、データソースでNULLを処理する必要があります。NULLを処理するメソッドは、次のような標準のOracle NVLコマンドです。 where customer_id = nvl(:cstid, customer_id) このcstidはLOVから渡された値になります。ユーザーが「すべて」を選択するとLOVはNULL値を渡します。 |
変更時に他のパラメータをリフレッシュ - このパラメータの値に依存する値を持つ他のパラメータをリフレッシュするために、ページの部分的なリフレッシュを実行します。
図4-6は、複数選択が無効にされている場合に、レポート利用者に表示されるDepartmentメニュー・タイプのパラメータを示しています。
図4-7は、複数選択が有効にされている場合に、レポート利用者に表示されるDepartmentメニュー・タイプのパラメータを示しています。
日付タイプのパラメータは、データソースに渡すパラメータとして日付を入力するようにユーザーに求める日付ピッカーを提示します。図4-8に、日付パラメータの定義を示します。
日付タイプのパラメータを定義するには:
「パラメータ・タイプ」リストから「日付」を選択します。下側のペインに、選択に応じた適切なフィールドが表示されます。
「表示ラベル」を入力します。表示ラベルは、レポートを表示したときにユーザーに表示されるラベルです。たとえば、Hire Dateなど。
「テキスト・フィールド・サイズ」に整数を入力します。このフィールドでは、日付エントリ用のテキスト・ボックスにユーザーが入力できる文字数を決定します。たとえば、10など。
「日付書式文字列」を入力します。この書式は、Javaの日付書式にする必要があります(例: MM-dd-yyyy)。
必要に応じて、「開始日」と「終了日」を入力します。ここに入力した各日付によって、日付ピッカーでユーザーに提示する日付の範囲を定義します。たとえば、「開始日」に01-01-1990を入力すると、ユーザーは1990年1月1日より前の日付を日付ピッカーで選択できなくなります。「終了日」を空白のままにすると、将来の日付がすべて有効になります。
図4-9に、レポート利用者に表示されるHire Dateパラメータを示します。
値リストには、レポート利用者がデータソースに渡すパラメータ値を選択できる値のセットを定義します。メニュー・タイプのパラメータを定義すると、ここで定義した値リストは選択メニューを提示することになります。値リストは、メニュー・パラメータを定義する前に定義する必要があります。
次のいずれかの方法で、リストを移入します。
固定データ - 値リストを手動で入力します。
SQL問合せ - SQL問合せを使用してデータベースから値を取得します。
フレックスフィールド - Oracle E-Business Suite内で定義されたキー・フレックスフィールドから値を取得します。このオプションを使用できるのは、BI PublisherでOracle E-Business Suiteセキュリティ・モデルを使用するときのみです。詳細は、第4.5項「フレックスフィールド・パラメータの追加」を参照してください。
値リストを追加するには:
「データ・モデル」のコンポーネント・ペインで、「値リスト」をクリックし、「新規値リストの作成」をクリックします(図4-10を参照)。
リストの「名前」を入力して、「タイプ」に「SQL問合せ」または「固定データ」を選択します。
データ・エンジンは、値リストの問合せから名前(表示名)と値のペアを作成します。値リストのSELECT文では、データ・エンジンによって、最初にリストされる列が(ユーザーに表示される)表示名に使用され、2番目の列がデータ・セットの問合せのパラメータに渡される値に使用されます。
問合せで返される列が1つのみの場合は、その列の値が、ユーザーに表示される値リストの表示名およびパラメータに渡される値の両方として使用されます。
SQL問合せからリストを作成するには:
リストから「データソース」を選択します。
問合せの結果をレポート・セッション用にキャッシュする場合は、下側のペインで「結果のキャッシュ」を選択します(推奨)。
SQL問合せを入力するか、クエリー・ビルダーを使用します。クエリー・ビルダー・ユーティリティの詳細は、第2.3.3項「SQLクエリー・ビルダーの使用」を参照してください。図4-11に、SQL問合せタイプの値リストを示します。
図4-11に示すSQL問合せは、DEPARTMENTS表のDEPARTMENT_NAME列のみを選択しています。この場合、値リストが問合せの結果としてリストに表示され、その同じ値がデータ・セットのパラメータに渡されます。図4-12は、値リストの表示項目とデータ・セットに渡された値を示しています。メニュー項目とP_DEPTに表示されている値はDEPARTMENT_NAMEの値であることに注意してください。
かわりに、DEPARTMENT_NAMEをリスト表示しているデータセットのパラメータにDEPARTMENT_IDを渡す場合は、SQL問合せを次のように構成します。
Select "DEPARTMENTS"."DEPARTMENT_NAME" as "DEPARTMENT_NAME", "DEPARTMENTS"."DEPARTMENT_ID" as "DEPARTMENT_ID" from "DEMO"."DEPARTMENTS" "DEPARTMENTS
図4-13は、値リストの表示項目とデータ・セットに渡された値を示しています。メニューにはDEPARTMENT_NAMEがリスト表示され、P_DEPTにはDEPARTMENT_IDの値が表示されていることに注意してください。
固定データ・セットからリストを作成するには:
下側のペインで、「新規値リストの作成」アイコンをクリックして、「ラベル」と「値」のペアを追加します。ラベルはユーザーにリスト表示されます。値はデータ・エンジンに渡されます。
これを、必要なラベルと値のペアごとに繰り返します。
図4-14に、固定データ・タイプの値リストを示します。
BI PublisherでOracle E-Business Suiteセキュリティを使用するように構成済の場合は、作成するレポートでキー・フレックスフィールドをパラメータとして利用できます。データ・モデルを定義するときに、キー・フレックスフィールドをパラメータとして渡すように設定すると、BI Publisherではレポート利用者に対してダイアログが表示され、ここで選択されたフレックスフィールド・セグメントがパラメータとしてレポートに渡されます。これは、レポートをE-Business Suiteのコンカレント・マネージャを通して実行するときにフレックスフィールドが提示される方法に似ています。
フレックスフィールド値リストは、レポート・ビューアでは図4-15のように表示されます。
フレックスフィールド値リストはダイアログとして表示され、ここからセグメント値を選択できます(図4-16を参照)。
値リストを定義するときは、「フレックスフィールド」というリスト・タイプが表示されます。フレックスフィールド・タイプの値リストを有効にするには、E-Business Suiteセキュリティを使用するようにBI Publisherが構成されている必要があります。フレックスフィールドがすでにE-Business Suite内で定義されている必要があります。
E-Business Suiteでのフレックスフィールドの詳細は、Oracle E-Business Suiteフレックスフィールド・ガイドを参照してください。BI PublisherのためのE-Business Suiteセキュリティの設定方法の詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Publisher管理者ガイド』のOracle E-Business Suiteとの統合に関する項を参照してください。
フレックスフィールド・パラメータを追加するには、次のタスクを実行します。各タスクの詳細は、この後の各項で説明します。
フレックスフィールド値リスト(LOV)を追加します。フレックスフィールド・タイプの値リストは、フレックスフィールド・メタデータ定義を取り出して、各セグメントの適切な値をフレックスフィールド値リスト選択ダイアログに表示します。
パラメータを追加してフレックスフィールドLOVに関連付けるには、フレックスフィールド値リストをパラメータのソース・メニューとして選択します。
フレックスフィールド・コンポーネントをデータ・モデルに追加します。フレックスフィールド・パラメータを使用して、データ・モデル内で定義されたフレックスフィールドに値を渡します。
フレックスフィールドをSQL問合せで参照するには、&flexfield_name
構文を使用します。実行時に、&flexfield_name
参照は字句コードで置き換えられます。この字句コードは、フレックスフィールド・コンポーネント定義の中の値に基づいて作成されます。
フレックスフィールド定義から取得される値リストを追加するには:
「データ・モデル」のコンポーネント・ペインで、「値リスト」をクリックし、「新規値リストの作成」をクリックします。
「名前」にリストの名前を入力し、「タイプ」で「フレックスフィールド」を選択します。「タイプ」で「フレックスフィールド」を選択すると、「データソース」オプションは編集不可能になります。フレックスフィールド・タイプの値リストはすべて、Oracle E-Business Suiteをデータソースとして使用します。
下部のペインで、次の項目を入力します。
アプリケーションの短縮名 - E-Business Suiteアプリケーションの短縮名(例: SQLGL)。
IDフレックス・コード - このフレックスフィールドに対してキー・フレックスフィールドの登録フォームで定義されたフレックスフィールド・コード(例: GL#)。
IDフレックス番号 - フレックスフィールド構造情報が格納されているソース列またはパラメータの名前(例: 101、:STRUCT_NUM)。パラメータを使用する場合は、そのパラメータがデータ・モデル内で定義されていることを確認してください。
図4-17に、フレックスフィールド・タイプのLOVの例を示します。
フレックスフィールド値リストを表示してユーザーが選択した値を取り込むために、パラメータを定義します。フレックスフィールド・タイプのパラメータ定義には、範囲フレックスフィールドをサポートするために「範囲」という追加フィールドがあります。範囲フレックスフィールドでは、各キー・セグメントの値が1つだけではなく、下限値と上限値がサポートされます。
フレックスフィールド値リストのパラメータを定義するには:
「データ・モデル」のコンポーネント・ペインで、「パラメータ」をクリックし、「新規パラメータの作成」をクリックします。
「パラメータ・タイプ」リストから「メニュー」を選択します。「データ型」(「文字列」または「整数」)を選択します。
「デフォルト値」にフレックスフィールド・パラメータのデフォルト値を入力します。デフォルト値は、レポート定義の中でカスタマイズすることもできます。
「行配置」に入力します。行配置とは、このパラメータをレポート・ビューア内のどの場所に表示するかを決定するものです。行配置は、レポート定義の中でカスタマイズすることもできます。
「表示ラベル」を入力します。表示ラベルは、レポートを表示したときにユーザーに表示されるラベルです。たとえば、Account Fromです。表示ラベルは、レポート定義の中でカスタマイズすることもできます。
このパラメータに定義した「値リスト」を選択します。選択した値リストがのタイプがフレックスフィールドである場合は、「範囲」というフィールドも表示されます。フレックスフィールド・セグメント値の範囲を渡すには、第4.5.2.5項「値の範囲を渡す」を参照してください。
オプションのうち、「リストに表示する値の数」、「複数選択」、「全選択可能」および「変更時に他のパラメータをリフレッシュ」は、フレックスフィールド・パラメータの場合は無効になります。
図4-18に、フレックスフィールド値リストのパラメータ定義を示します。
これで、パラメータ値をデータ・モデル内のフレックスフィールド・コンポーネントに渡せるようになりました。第6章「フレックスフィールドの追加」で、フレックスフィールド・コンポーネントの追加について詳しく説明します。ここでは、簡略化した手順を例として示します。
データ・モデル内でフレックスフィールドを定義するには:
「データ・モデル」のコンポーネント・ペインで、「フレックスフィールド」をクリックし、「新規フレックスフィールドの作成」をクリックします。
次の項目を入力します。
名前 - フレックスフィールド・コンポーネントの名前を入力します。
タイプ - リストからフレックスフィールドのタイプを選択します。ここで選択したタイプによって、必要になる追加フィールドが決まります。第6.2.1項「フレックスフィールドの詳細の入力」を参照してください。
アプリケーションの短縮名 - このフレックスフィールドを所有するOracle Applicationの短縮名を入力します(例 - GL)。
IDフレックス・コード - このフレックスフィールドに定義したフレックスフィールド・コードを、登録キー・フレックスフィールド形式で入力します(例 - GL#)。
IDフレックス番号 - フレックスフィールド構造情報を格納しているソース列またはパラメータの名前を入力します。たとえば、101です。パラメータを使用するには、:PARAM_STRUCT_NUMのようにパラメータ名の前にコロンを付けます。
ページの下の部分で、選択したフレックスフィールドのタイプの詳細を入力します。パラメータ値を受け取ることになっているフィールドについて、パラメータ名を、先頭にコロンを付けて入力します(たとえば、:P_Acct_List)。
図4-19では、フレックスフィールド・コンポーネントの「タイプ」はWhereと定義されています。パラメータ「:P_Acct_List」が「オペランド1」フィールドに入力されています。実行時に、パラメータP_Acct_Listに対してユーザーが選択した値を使用してwhere句が作成されます。
最後に、E-Business Suiteデータベースに対するSQL問合せを作成します。第6.2項「キー・フレックスフィールドの追加」の説明に従って字句構文を問合せの中で使用します。図4-20では、&Acct_Flex
がSQL問合せのwhere条件内でコールされるフレックスフィールド字句です。
値の範囲を渡せるようにフレックスフィールド値リストのパラメータを定義するには、2つのメニュー・パラメータを作成し、両方が同じフレックスフィールドLOVを参照するように設定します。実行時に、ユーザーが上限値を値リストから選択し、下限値を同じ値リストから選択します。この2つの値が、オペランドとしてデータ・モデルのフレックスフィールド・コンポーネントに渡されます。
フレックスフィールドLOVの1つを作成します。第4.5.2.1項「フレックスフィールド値リストの追加」を参照してください。
範囲上限パラメータを、第4.5.2.2項「フレックスフィールド値リストのメニュー・パラメータの追加」の手順に従って作成します。「範囲」フィールドで「高」を選択すると、このパラメータが上限値であると指定されます。
範囲下限パラメータを、第4.5.2.2項「フレックスフィールド値リストのメニュー・パラメータの追加」の手順に従って作成します。「範囲」フィールドで「低」を選択すると、このパラメータが下限値であると指定されます。どちらのパラメータも、ステップ1で作成したフレックスフィールド値リストを参照します。図4-21に、範囲を定義するパラメータの作成方法を示します。
データ・モデルの中でフレックスフィールドを作成します。第4.5.2.3項「データ・モデルで定義されたフレックスフィールドにフレックスフィールド・パラメータを使用して値を渡す」を参照してください。
ページの下の部分で、選択したフレックスフィールドのタイプの詳細を入力します。先頭にコロンを付けてパラメータを入力します。たとえば、:P_Acct_Listです。
図4-19では、フレックスフィールド・コンポーネントの「タイプ」はWhereと定義されています。パラメータ「:P_FLEX_LOW」と「:P_FLEX_HIGH」が「オペランド1」フィールドと「オペランド2」フィールドに入力されています。実行時に、パラメータP_FLEX_LOWおよびP_FLEX_HIGHに対してユーザーが選択した値を使用してwhere句が作成されます。
このデータ・モデルが関連付けられたレポートがレポート・ビューアに表示されるときに、2つのフレックスフィールド・パラメータが図4-23のように表示されます。
レポート利用者がフレックスフィールドの上限または下限のインジケータ(...)をクリックすると、上限値と下限値の両方を入力できるダイアログが開きます(図4-24を参照)。
レポート・ビューアでの範囲フレックスフィールド・パラメータの表示特性は、E-Business Suiteでの範囲フレックスフィールドの表示によく似ています。