ドリル・スルー・レポートの設計
Essbaseデータベース・マネージャ以上の場合は、ドリル・スルー・レポート定義を作成して、外部のリレーショナル・ソースに格納されているより多くのデータへのユーザー・アクセスを有効にできます。変数の柔軟性を追加する場合は、設計ファクタに列マッピング、ドリル可能リージョン、およびオプションでパラメータ化が含まれます。
ドリル・スルー・レポートを設計する際の一般的な考慮事項
ドリル・スルー・レポートは、外部ソース・システムまたはファイルからデータをプルするか、Webアプリケーションにリンクします。ドリル・スルー・レポート定義を作成するには、データベース・マネージャ以上である必要があります。データベースの「スクリプト」セクションのEssbase Webインタフェースで作成します。
すべてのドリル・スルー・レポート定義に列マッピングとドリル可能領域を含める必要があります。オプションで、ドリル・スルー・レポートに外部ソース・データ接続を提供するデータソース内にパラメータ化問合せが存在する場合は、ランタイム・パラメータのマッピングを定義できます。
ノート:
ドリル・スルー・レポートのデータソースがOracle Databaseに接続されている場合、一時表の使用オプションを選択して、SQLの“IN”句に多数の値を持つ問合せのパフォーマンスを高めることができます。Web URLにアクセスするようにドリル・スルー・レポートを設計することもできます。
ドリル・スルー・レポートの列マッピングの定義
Essbaseドリル・スルー・レポート定義の列マッピング部分では、レポートに含める必要がある外部ソース列、それらの列のマップ先であるEssbaseディメンション、および提供するアクセスの深さを示す世代/レベル・フィルタ条件(オプション)を定義します。
列マッピングの詳細を理解するには、「ドリル・スルー・レポート定義」を参照してください。
列マッピングを定義するには、
-
ホーム・ページでアプリケーションを開き、キューブを開きます。
-
左側のパネルで「スクリプト」を選択します。
-
「ドリル・スルー・レポート」をクリックします。
-
「作成」をクリックし、メニューから「データソース」を選択します。
-
「名前」フィールドで、レポートの名前を追加します。
-
「データソース」フィールドで、使用したい「データソース」を選択します。
-
列マッピングを作成します:
-
外部データソースから、レポートに含める列を選択します。
-
各列をマップするディメンションを選択します。
-
マッピングのフィルタ条件を選択します。たとえば、「レベル0」、「世代」または「なし」です(ディメンション・マッピング用)。

-
終了したら、「ドリル可能リージョン」をクリックします。「ドリル・スルー・レポートのドリル可能リージョンの定義」の説明に従って領域を定義しないと、ドリル・スルー・レポート定義を保存できません。
-
ドリル・スルー・レポートのドリル可能領域の定義
Essbaseドリル・スルー・レポート定義のドリル可能リージョン部分では、外部データ・ソースで使用可能な追加の詳細へのドリル・スルー・アクセスを提供するEssbaseキューブで1つ以上の領域/データ交差を指定します。
Essbase Webインタフェースを使用してドリル可能領域を指定するには、
-
ドリル・スルー・レポートの列マッピングを完了したら、「ドリル可能リージョン」をクリックします。
- プラス記号をクリックし、次のいずれかの方法を選択します:
- 空の行をダブルクリックして、計算構文(メンバー名とメンバー・セット関数)を使用して領域を定義します。
- 鉛筆アイコンをクリックしてドリル可能リージョン・セレクタを開き、追加するメンバーを選択して右クリックし、メニュー・オプションから選択して領域を定義します。

-
「保存」をクリックします。ドリル・スルー・レポートが正常に更新されたかどうかを示すメッセージが表示されます。

ドリル可能領域の例
次の例は、Smart Viewのドリル可能領域を青色で強調表示して示しています。
例1
Market、Year、Scenarioディメンションの最上位、メンバーSales、およびProductディメンションのすべてのレベル1メンバーに対してドリル可能領域を定義するには、次を使用します:
Market,Year,Scenario,Sales,@LEVMBRS(Product,1)
Smart Viewシートにドリルすると、結果のグリッドは次のようになります:

例2
Marketの子孫に対してドリル可能領域を定義するには、次を使用します:
@DESCENDANTS(Market)
Smart Viewシートにドリルすると、結果のグリッドは次のようになります:

例3
Productディメンションの世代3のメンバー、Market、Year、Scenarioディメンションの最上位、およびメンバーSalesに対してドリル可能領域を定義するには、次を使用します:
Market,Year,Scenario,Sales,@GENMBRS(Product,3)
Smart Viewシートにドリルすると、結果のグリッドは次のようになります:

ドリル・スルー・レポートのパラメータの実装
外部ソース・データへのドリル・スルー・レポートの柔軟性を高めるには、パラメータを実装して、EssbaseがSQL問合せに渡す変数に基づいてドリル・スルー・レポートを動的に構築できるようにします。
データベース・マネージャ以上である場合、ドリル・スルー・レポートにパラメータ化されたデータソース問合せを実装できます。
前提条件: アプリケーション・マネージャの以上から、固定(デフォルト)値、代替変数、またはパラメータとしての外部ユーザー定義関数を使用するデータソースへのアクセス権が付与されています。
Essbaseは、実行時にパラメータの値を認識し、ドリル・スルーの実行時にEssbaseによって生成される問合せにその現在の値を挿入します。
ドリル・スルー・レポート定義で、ランタイム・パラメータのディメンション、世代およびレベル・マッピングをオプションで追加できます。これにより、現在の変数コンテキストに基づいて、ドリル・スルー・レポートの結果をさらにカスタマイズできます。
Essbaseで変数に基づいて動的にドリル・スルー・レポートを作成する場合は、次のワークフローに従います:
-
基礎となるデータソース問合せでパラメータを実装します。これは、Application Manager以上によって行う必要があります。
-
データ・ソースに関連付けられたドリル・スルー・レポートの定義を作成します。
-
オプションで、ドリル・スルー・レポート定義内でパラメータの使用にランタイム・カスタマイズを加えます。次に例を示します。
-
ドリルダウン・レポートを実行して予想どおりの動作であることをテストおよび検証し、プラットフォーム・ログを確認します。
ランタイム・パラメータとユーザー定義関数
後続のユースケースの例は、次の前提条件に基づいています:
-
ユーザー定義関数getMonthsが外部ソース・システムに定義されています。関数によって、月のカンマ区切りリストが返されます。
-
ドリル・スルー・レポート定義に使用されるデータソースが、次のようにgetMonths関数をコールする問合せを使用して定義されています:
select * from SampleBasic where month in (getMonths(?))
ランタイム・パラメータのレベル0 (再帰的)マッピング
ランタイム・パラメータがレベル0のYearにバインドされている場合のドリル・スルー・レポート定義
![ドリル・スルー・レポート定義の「ランタイム・パラメータ」タブ。パラメータ: Param1。変数: 選択済。値: Sample.mnth。ディメンション: Year。世代のバインディング: Level0 [レベル] ドリル・スルー・レポート定義の「ランタイム・パラメータ」タブ。パラメータ: Param1。変数: 選択済。値: Sample.mnth。ディメンション: Year。世代のバインディング: Level0 [レベル]](img/drill-through-param-level0.jpg)
Smart ViewユーザーがYearディメンションのQtr1をドリル・スルーする場合、ドリル・スルー・レポートにはJan、Feb、Marが含まれます。Smart ViewユーザーがYearをドリル・スルーする場合、ドリル・スルー・レポートにはJan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Decが含まれます。
ランタイム・パラメータの世代マッピング
ランタイム・パラメータがQuarter世代のYearにバインドされている場合のドリル・スルー・レポート定義
![ドリル・スルー・レポート定義の「ランタイム・パラメータ」タブ。パラメータ: Param1。変数: 選択済。値: Sample.mnth。ディメンション: Year。世代のバインディング: Quarter [世代] ドリル・スルー・レポート定義の「ランタイム・パラメータ」タブ。パラメータ: Param1。変数: 選択済。値: Sample.mnth。ディメンション: Year。世代のバインディング: Quarter [世代]](img/drill-through-param-quargen.jpg)
Smart ViewユーザーがYearディメンション・メンバーをドリル・スルーする場合、ドリル・スルー・レポートにはQtr1、Qtr2、Qtr3、Qtr4が含まれます。
ノート:
列マッピングと重複するランタイム・パラメータのディメンション/世代のバインディングを設定することは無効です。この場合に生成される問合せは常にnullセットです。