プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Business Intelligence Publisherデータ・モデリング・ガイド
12c (12.2.1.3.0)
E90113-02
目次へ移動
目次

前
前へ
次
次へ

4 パラメータと値リストの追加

ここでは、データ・モデルにパラメータと値リストを追加する方法について説明します。

パラメータについて

データ・モデルにパラメータを追加することで、レポートを表示するときにユーザーがデータをやりとりできるようになります。

Oracle BI Publisherでは、次のパラメータ・タイプがサポートされます。

  • テキスト - パラメータとして渡すテキスト文字列を入力できます。

  • メニュー - 値リストから選択できます。値リストには、指定した固定データを含めることも、定義されたデータソースに対して実行するSQL問合せを使用して作成したリストを含めることもできます。このオプションでは、複数選択、「すべて選択」オプション、およびパラメータをカスケードするための部分的なページ・リフレッシュがサポートされています。

    メニュー・タイプのパラメータを作成する場合は、値リストを定義してから、パラメータを定義して、そのパラメータを値リストに関連付けます。値リストの追加を参照してください。

  • 日付 - ユーザーはパラメータとして日付を選択できます。データ型「日付」とJava日付書式を使用する必要があります。

データ・モデルでパラメータを定義すると、レポート内でのパラメータの表示方法をレポート・レベルの設定として構成できます。『Oracle Business Intelligence Publisherレポート・デザイナーズ・ガイド』のレポートのパラメータ設定を構成する方法を参照してください。

パラメータのサポートはデータ・セットのタイプに応じて異なります。SQL問合せのデータ・セットは、利用可能なパラメータ機能の完全なセットをサポートします。その他のタイプのデータ・セットは、これらの機能のすべてまたはサブセットをサポートすることも、まったくサポートしないこともあります。次の表は、それぞれのデータ・セットのタイプに応じたサポート内容を示しています。

データ・セットのタイプ パラメータのサポート 複数選択 全選択可能 変更時に他のパラメータをリフレッシュ

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 BI Publisherレイアウト・エディタを使用してレポートのレイアウトを設計する際に、レポート出力をプレビューするためにも使用されます。

BI Publisherでは、テキスト入力またはメニュー(値リスト)のタイプをサポートしていますが、両方はサポートしていません。ユーザーがテキスト値を入力することも、値リストのメニューから選択することもできるような複合パラメータは定義できません。

行配置は、レポート・レベルで構成できます。レポート定義では、パラメータに対して追加の表示オプションをサポートしています。Oracle Business Intelligence Publisherレポート・デザイナーズ・ガイドのレポートのパラメータ設定を構成する方法を参照してください。

  1. 「データ・モデル」のコンポーネント・ペインで、「パラメータ」をクリックし、「新規パラメータの作成」をクリックします。
  2. パラメータの「名前」を入力します。
    名前はデータ・セット内のこのパラメータへの参照と同じにする必要があります。
  3. リストから「データ型」を選択します。「日付」データ型は、日付の「パラメータ・タイプ」のみをサポートします。
  4. パラメータの「デフォルト値」を入力します。長時間実行される問合せを防止するために、これをお薦めします。
  5. 「パラメータ・タイプ」を選択します。
  6. 「行配置」設定で、パラメータを表示する行の数と、各パラメータを配置する行を構成します。

    たとえば、レポートで6個のパラメータが使用されている場合、行1を先頭に、パラメータを行1-6に1個ずつ割り当てることも、行1、2、3にパラメータを2個ずつ割り当てることもできます。デフォルトでは、すべてのパラメータが行1に割当てられます。

テキスト・パラメータの作成

「テキスト」タイプのパラメータは、テキスト・ボックスを提示して、パラメータとしてデータソースに渡すテキスト・エントリを入力するようにユーザーに求めます。

次の図に、テキスト・パラメータの定義を示します。

  1. 「パラメータ・タイプ」リストから「テキスト」を選択します。
  2. 「表示ラベル」を入力します。たとえば、Departmentです。
  3. 「テキスト・フィールド・サイズ」に整数を入力します。このフィールドでは、フィールドのサイズ(幅)が決定されますが、テキスト・ボックスにユーザーが入力できる文字の数は制限されません。
  4. 必要に応じて、次の「オプション」を有効にします。
    • テキスト・フィールドにカンマ区切りの値を含む - ユーザーはこのパラメータに対してカンマ区切りの複数の値を入力できます。データソース内のパラメータは、複数の値をサポートするように定義されている必要があります。

    • 変更時に他のパラメータをリフレッシュ - このパラメータの値に依存する値を持つ他のパラメータをリフレッシュするために、ページの部分的なリフレッシュを実行します。

次の図に、レポート利用者に表示されるDepartmentパラメータを示します。

メニュー・パラメータの作成

メニュー・タイプのパラメータは、ユーザーに値リストを提示します。

最初に、値リストを定義しておく必要があります。値リストの追加を参照してください。メニュー・タイプのパラメータは、文字列および整数のデータ型のみをサポートします。

メニュー・パラメータの定義は、次の図に示されているような様々なオプションを含みます。

  1. 「パラメータ・タイプ」リストから「メニュー」を選択します。下側のペインに適切なフィールドが表示されます。
  2. データ型で、「文字列」または「整数」を選択します。
  3. 「表示ラベル」を入力します。表示ラベルは、レポートを表示したときにユーザーに表示されるラベルです。たとえば、Departmentです。
  4. 「リストに表示する値の数」を入力します。このフィールドのエントリよりもリスト内の値の数が多い場合、次の図に示されているようにユーザーは「検索」をクリックして、表示されていない値を探す必要があります。このフィールドのデフォルトは、100に設定されています。
  5. このパラメータに定義した「値リスト」を選択します。
  6. 必要に応じて、次の「オプション」を有効にします。
    • 複数選択 - ユーザーはリストから複数のエントリを選択できます。データソースは、このパラメータに対して複数の値をサポートできる必要があります。複数の選択をサポートするメニュー・パラメータの表示は別のものになります。次の2つの図を参照してください。

    • 全選択可能 - リストに「すべて」オプションを挿入します。

      値リストから「すべて」を選択すると、パラメータにNULL値を渡すか、リストのすべての値を渡すかを選択できます。「NULL値が渡されました」または「すべての値が渡されました」を選択します。

      注意:

      「*」を使用するとNULLを渡すことになるため、データソースでNULLを処理する必要があります。NULLを処理するメソッドは、次のような標準のOracle NVLコマンドです。

      ここでcustomer_id = nvl(:cstid, customer_id)

      cstidは値リストから渡された値です。ユーザーが「すべて」を選択すると、値リストからNULL値が渡されます。

    • 変更時に他のパラメータをリフレッシュ - このパラメータの値に依存する値を持つ他のパラメータをリフレッシュするために、ページの部分的なリフレッシュを実行します。

次の図は、複数選択が無効にされている場合に、レポート利用者に表示されるDepartmentメニュー・タイプのパラメータを示しています。

次の図は、複数選択が有効にされている場合に、レポート利用者に表示されるDepartmentメニュー・タイプのパラメータを示しています。

メニュー・パラメータの表示のカスタマイズ

レポート内でのメニュー・パラメータの表示は、レポート定義でさらにカスタマイズできます。

メニュー・タイプのパラメータは、追加の表示オプションをチェック・ボックスまたはラジオ・ボタンの静的リストとしてサポートしています。Oracle Business Intelligence Publisherレポート・デザイナーズ・ガイドのレポートのパラメータ設定を構成する方法を参照してください。

日付パラメータの定義

日付タイプのパラメータは、データソースに渡すパラメータとして日付を入力するようにユーザーに求める日付ピッカーを提示します。

図に、日付パラメータの定義を示します。

  1. 「パラメータ・タイプ」リストから「日付」を選択します。下側のペインに、選択に応じた適切なフィールドが表示されます。
  2. 「表示ラベル」を入力します。表示ラベルは、レポートを表示したときにユーザーに表示されるラベルです。たとえば、Hire Dateなど。
  3. 「テキスト・フィールド・サイズ」に整数を入力します。このフィールドでは、日付エントリ用のテキスト・ボックスにユーザーが入力できる文字数を決定します。たとえば、10です。
  4. 「日付書式文字列」を入力します。この書式は、Javaの日付書式にする必要があります(例: MM-dd-yyyy)。
  5. 必要に応じて、「開始日」と「終了日」を入力します。ここに入力した各日付によって、日付ピッカーでユーザーに提示する日付の範囲を定義します。たとえば、「開始日」に01-01-1990を入力すると、ユーザーは1990年1月1日より前の日付を日付ピッカーで選択できなくなります。「終了日」を空白のままにすると、将来の日付がすべて有効になります。

図に、レポート利用者に表示されるHire Dateパラメータを示します。

値リストについて

値リストには、レポート利用者がデータソースに渡すパラメータ値を選択できる値のセットを定義します。

メニュー・タイプのパラメータを定義すると、値リストによって選択メニューが提供されます。値リストは、メニュー・パラメータを定義する前に定義する必要があります。

次のいずれかの方法で、リストを移入します。

  • 固定データ

    手動で値リストを入力します。

  • SQL問合せ

    SQL問合せを使用してデータベースから値を取得します。

  • フレックスフィールド

    Oracle E-Business Suite内で定義されたキー・フレックスフィールドから値を取得します。フレックスフィールド・オプションは、Oracle BI PublisherでOracle E-Business Suiteセキュリティ・モデルを使用している場合にのみ使用できます。フレックスフィールド・パラメータの追加を参照してください。

値リストの追加

「SQL問合せ」または「固定データ」の値のリストを作成できます。

  1. 「データ・モデル」のコンポーネント・ペインで、「値リスト」をクリックし、「新規値リストの作成」をクリックします。
  2. リストの名前を入力し、「タイプ」を選択します。

SQL問合せからのリストの作成

データ・エンジンは、値リストの問合せから名前(表示名)と値のペアを作成します。値リストのSELECT文では、データ・エンジンによって、最初にリストされる列が表示名に使用され、2番目の列がデータ・セットの問合せのパラメータに渡される値に使用されます。

問合せで返される列が1つのみの場合は、その列の値が、ユーザーに表示される値リストの表示名およびパラメータに渡される値の両方として使用されます。

  1. リストから「データソース」を選択します。
  2. 問合せの結果をレポート・セッション用にキャッシュする場合は、下側のペインで「結果のキャッシュ」を選択します(推奨)。
  3. SQL問合せを入力するか、クエリー・ビルダーを使用します。クエリー・ビルダー・ユーティリティの詳細は、SQLクエリー・ビルダーの使用を参照してください。次の図に、SQL問合せタイプの値リストを示します。

次に示されたSQL問合せは、DEPARTMENTS表のDEPARTMENT_NAME列のみを選択します。この場合、値リストが問合せの結果としてリストに表示され、その同じ値がデータ・セットのパラメータに渡されます。次の図は、値リストの表示項目とデータ・セットに渡された値を示しています。メニュー項目とP_DEPTに表示されている値はDEPARTMENT_NAMEの値です。

かわりに、DEPARTMENT_IDをデータセットのパラメータに渡し、DEPARTMENT_NAMEをリストに表示する場合は、SQL問合せを次のように構成します。

Select	 "DEPARTMENTS"."DEPARTMENT_NAME" as "DEPARTMENT_NAME",
	 "DEPARTMENTS"."DEPARTMENT_ID" as "DEPARTMENT_ID"
 from	 "DEMO"."DEPARTMENTS" "DEPARTMENTS

次の図は、値リストの表示項目とデータ・セットに渡された値を示しています。メニューにはDEPARTMENT_NAMEがリスト表示され、P_DEPTにはDEPARTMENT_IDの値が表示されます。

固定データ・セットからのリストの作成

必要なラベルと値のペアごとの固定データ・セットからリストを作成します。

ラベルと値のペアを作成すると、ラベルはリスト内のユーザーに表示されます。値はデータ・エンジンに渡されます。

  1. 下側のペインで、「新規値リストの作成」アイコンをクリックして、「ラベル」と「値」のペアを追加します。
  2. これを、必要なラベルと値のペアごとに繰り返します。

次の図に、固定データ・タイプの値リストを示します。

フレックスフィールド・パラメータの追加

BI PublisherでOracle E-Business Suiteセキュリティを使用するように構成済の場合は、作成するレポートでキー・フレックスフィールドをパラメータとして利用できます。

データ・モデルを定義するときに、キー・フレックスフィールドをパラメータとして渡すように設定すると、BI Publisherではレポート利用者に対してダイアログが表示され、ここで選択されたフレックスフィールド・セグメントがパラメータとしてレポートに渡されます。これは、レポートをE-Business Suiteのコンカレント・マネージャを通して実行するときにフレックスフィールドが提示される方法に似ています。

次に示されているように、フレックスフィールド値リストはレポート・ビューアに表示されます。

次に示されているように、フレックスフィールド値リストはセグメント値を選択するダイアログとして表示されます。

フレックスフィールドを使用するための前提条件

値リストを定義するときは、「フレックスフィールド」というリスト・タイプが表示されます。

フレックスフィールド・タイプの値リストを有効にするには、E-Business Suiteセキュリティを使用するようにBI Publisherが構成されている必要があります。フレックスフィールドがすでにE-Business Suite内で定義されている必要があります。

Oracle E-Business Suiteフレックスフィールド・ガイドおよび『Oracle Business Intelligence Publisher管理者ガイド』のOracle E-Business Suiteとの統合に関する項を参照してください。

フレックスフィールド・パラメータおよび値リストの追加

値リストを追加することで、フレックスフィールド・パラメータを追加します。

フレックスフィールド・タイプの値リストは、フレックスフィールド・メタデータ定義を取り出して、各セグメントの適切な値をフレックスフィールド値リスト選択ダイアログに表示します。フレックスフィールド・パラメータを使用して、データ・モデル内で定義されたフレックスフィールドに値を渡します。

実行時に、&flexfield_name参照は字句コードで置き換えられます。この字句コードは、フレックスフィールド・コンポーネント定義の中の値に基づいて作成されます。

  1. フレックスフィールド値リスト(LOV)を追加します。
  2. パラメータを追加してフレックスフィールドLOVに関連付けるには、フレックスフィールド値リストをパラメータのソース・メニューとして選択します。
  3. フレックスフィールド・コンポーネントをデータ・モデルに追加します。
  4. フレックスフィールドをSQL問合せで参照するには、&flexfield_name構文を使用します。

フレックスフィールド値リストの追加

フレックスフィールド定義から取得した値リストを追加します。

「タイプ」で「フレックスフィールド」を選択すると、「データソース」オプションは編集不可能になります。フレックスフィールド・タイプの値リストはすべて、Oracle E-Business Suiteをデータソースとして使用します。

  1. 「データ・モデル」のコンポーネント・ペインで、「値リスト」をクリックし、「新規値リストの作成」をクリックします。
  2. 「名前」にリストの名前を入力し、「タイプ」で「フレックスフィールド」を選択します。
  3. Flex_Acct_List:Flexfieldsペインで、次の項目を入力します。
    • アプリケーションの短縮名 - E-Business Suiteアプリケーションの短縮名(例: SQLGL)。

    • IDフレックス・コード - このフレックスフィールドに対してキー・フレックスフィールドの登録フォームで定義されたフレックスフィールド・コード(例: GL#)。

    • IDフレックス番号 - フレックスフィールド構造情報が格納されているソース列またはパラメータの名前(例: 101、:STRUCT_NUM)。パラメータを使用する場合は、そのパラメータがデータ・モデル内で定義されていることを確認してください。

    次のイメージに、フレックスフィールド・タイプLOVの例を示します。

フレックスフィールド値リストのメニュー・パラメータの追加

フレックスフィールド値リストを表示してユーザーが選択した値を取り込むために、パラメータを定義します。

フレックスフィールド・タイプのパラメータ定義には、範囲フレックスフィールドをサポートするために「範囲」という追加フィールドがあります。範囲フレックスフィールドでは、各キー・セグメントの値が1つだけではなく、下限値と上限値がサポートされます。フレックスフィールドのデフォルト値およびレポート定義での行配置をカスタマイズできます。行配置とは、このパラメータをレポート・ビューア内のどの場所に表示するかを決定するものです。フレックスフィールド・セグメント値の範囲を渡すには、値の範囲を渡すを参照してください

オプションのうち、「リストに表示する値の数」、「複数選択」、「全選択可能」および「変更時に他のパラメータをリフレッシュ」は、フレックスフィールド・パラメータの場合は無効になります。

  1. 「データ・モデル」のコンポーネント・ペインで、「パラメータ」をクリックし、「新規パラメータの作成」をクリックします。
  2. 「パラメータ・タイプ」リストから「メニュー」を選択します。
  3. 「データ型」として「文字列」または「整数」を選択します。
  4. 「デフォルト値」にフレックスフィールド・パラメータのデフォルト値を入力します。
  5. 「行配置」に入力します。
  6. 「表示ラベル」を入力します。表示ラベルは、レポートを表示したときにユーザーに表示されるラベルです。たとえば、Account Fromです。
  7. このパラメータに定義した「値リスト」を選択します。
    選択した値リストがのタイプがフレックスフィールドである場合は、「範囲」というフィールドも表示されます。

次のイメージに、フレックスフィールド値リストのパラメータ定義を示します。

データ・モデルで定義されたフレックスフィールドにフレックスフィールド・パラメータを使用して値を渡す

メニュー・パラメータをフレックスフィールド値リストに追加した後、パラメータ値をデータ・モデル内のフレックスフィールド・コンポーネントに渡せます。

フレックスフィールドの追加で、フレックスフィールド・コンポーネントの追加について詳しく説明します。ここでは、簡略化した手順を例として示します。

データ・モデル内でフレックスフィールドを定義するには:
  1. 「データ・モデル」のコンポーネント・ペインで、「フレックスフィールド」をクリックし、「新規フレックスフィールドの作成」をクリックします。
  2. 次を入力します。
    • 名前 - フレックスフィールド・コンポーネントの名前を入力します。

    • タイプ - リストからフレックスフィールドのタイプを選択します。ここで選択したタイプによって、必要になる追加フィールドが決まります。フレックスフィールドの詳細の入力を参照してください。

    • アプリケーションの短縮名 - このフレックスフィールドを所有するOracle Applicationの短縮名を入力します(例 - GL)。

    • IDフレックス・コード - このフレックスフィールドに定義したフレックスフィールド・コードを、登録キー・フレックスフィールド形式で入力します(例 - GL#)。

    • IDフレックス番号 - フレックスフィールド構造情報を格納しているソース列またはパラメータの名前を入力します。たとえば、101です。パラメータを使用するには、:PARAM_STRUCT_NUMのようにパラメータ名の前にコロンを付けます。

  3. ページの下の部分で、選択したフレックスフィールドのタイプの詳細を入力します。パラメータ値を受け取ることになっているフィールドについて、パラメータ名を、先頭にコロンを付けて入力します(たとえば、:P_Acct_List)。

    次の図で、フレックスフィールド・コンポーネントの「タイプ」はWhereと定義されています。パラメータ「:P_Acct_List」が「オペランド1」フィールドに入力されています。実行時に、パラメータP_Acct_Listに対してユーザーが選択した値を使用してwhere句が作成されます。

SQL問合せ内でのフレックスフィールドの参照

最後に、E-Business Suiteデータベースに対するSQL問合せを作成します。

キー・フレックスフィールドの追加に説明されているように、問合せに字句構文を使用します。次の図で、&Acct_FlexがSQL問合せのWHERE条件でコールされたフレックスフィールド字句構文です。

値の範囲を渡す

値の範囲を渡せるようにフレックスフィールド値リストのパラメータを定義するには、2つのメニュー・パラメータを作成し、両方が同じフレックスフィールドLOVを参照するように設定します。

実行時に、ユーザーが上限値を値リストから選択し、下限値を同じ値リストから選択します。この2つの値が、オペランドとしてデータ・モデルのフレックスフィールド・コンポーネントに渡されます。

  1. フレックスフィールドLOVの1つを、フレックスフィールド値リストの追加に説明されているように作成します。
  2. フレックスフィールド値リストのメニュー・パラメータの追加の手順に従って、上限範囲パラメータを作成します。「範囲」フィールドに「高」を選択し、このパラメータを上限値として指定します。
  3. フレックスフィールド値リストのメニュー・パラメータの追加の手順に従って、下限範囲パラメータを作成します。「範囲」フィールドに「低」を選択し、このパラメータを下限値として指定します。どちらのパラメータも、ステップ1で作成したフレックスフィールド値リストを参照します。次の図に、範囲を定義するパラメータの作成方法を示します。
  4. データ・モデルの中で、データ・モデルで定義されたフレックスフィールドにフレックスフィールド・パラメータを使用して値を渡すに説明されているようにフレックスフィールドを作成します。

    ページの下の部分で、選択したフレックスフィールドのタイプの詳細を入力します。先頭にコロンを付けてパラメータを入力します。たとえば、:P_Acct_Listです。

    次の図で、フレックスフィールド・コンポーネントの「タイプ」はWhereと定義されています。パラメータ「:P_FLEX_LOW」と「:P_FLEX_HIGH」が「オペランド1」フィールドと「オペランド2」フィールドに入力されています。実行時に、パラメータP_FLEX_LOWおよびP_FLEX_HIGHに対してユーザーが選択した値を使用してwhere句が作成されます。

このデータ・モデルが関連付けられたレポートがレポート・ビューアに表示される際、次に示されているように、レポート利用者に2つのフレックスフィールド・パラメータが表示されます。

レポート利用者がフレックスフィールドの上限または下限のインジケータ(...)をクリックすると、次の図に示されているように上限値と下限値の両方を入力できるダイアログが開きます。

レポート・ビューアでの範囲フレックスフィールド・パラメータの表示特性は、E-Business Suiteでの範囲フレックスフィールドの表示によく似ています。