ルール・ファイルを使用した共有メンバーの構築
共有メンバーに関連付けられたデータは、共有メンバーと同じ名前を持つプロトタイプ・メンバーのデータです。共有メンバーにはプロトタイプ・メンバーに含まれたデータへのポインタが保存されるため、データはメンバー間で共有され、1回のみ保存されます。
たとえば、100-20 (Diet Cola)メンバーは100ファミリとDietファミリにロールアップされます。
図15-11 Sample.Basicデータベース内の共有メンバー

メンバーを共有する親の数に制限はありません。Diet Colaには親が2つありますが(100とDiet)、さらに多くの親にロールアップするよう定義することもできます。
アウトライン内の複数世代でメンバーを共有できます。図15-11では、Diet Colaはアウトライン内の第2世代の2つのメンバーによって共有されていますが、図15-14のように第3世代と第4世代のメンバーで共有することもできます。
アウトライン内の異なる世代の共有メンバーは、アウトライン・エディタで簡単に作成できます。ディメンション構築を使用して共有メンバーを作成する方法は、より複雑です。構築方法を選択し、データソースを慎重にフォーマットする必要があります。
次の項では、データソースとルール・ファイルを使用してアウトライン内に共有メンバーを構築する方法を説明します。
ノート:
共有メンバーがプロトタイプ・メンバーの前に配置されるようなアウトラインは作成しないでください。作成すると、アウトラインの検証でエラーが発生する可能性があります。
同じ世代でのメンバーの共有
Essbaseアウトラインで同じ世代でメンバーを共有するのが、メンバーを共有する最も簡単な方法です。同じ世代での共有メンバーを構築するには、ディメンション構築ルールを設計するときに、ディメンション構築方法を使用して世代、レベルまたは親子参照を特定します。
同じ世代で共有されるメンバーは、同じ分岐にロールアップされます。次の例では、Sample Basicに基づいて、強調表示されたProductメンバー100-20 (Diet Cola)は第2世代であり、別の親メンバーDietによって共有されています。親(100とDiet)は両方とも同じ分岐(Productディメンション)にロールアップされます。
次の図では、100-400の下にある強調表示されているすべてのProductメンバーは、保管されているプロトタイプ・メンバーであり、Dietの下にあるすべてのメンバーは、保管されていない共有メンバーです。
図15-12 サンプル・アウトライン: 同じ世代で共有されるメンバー

ディメンション構築において同じ世代でメンバーを共有するには、世代、レベルまたは親子参照を使用して構築方法を選択します。各構築方法の例は、次を参照してください:
世代参照を使用した同じ世代の共有メンバーの作成
「世代」構築方法を使用してEssbaseアウトラインにおいて同じ世代での共有メンバーを構築するルールを設計する場合は、ディメンション構築ルールにおいて、プロトタイプ・メンバーの親の後に、重複する世代を配置します。
世代参照による構築方法を使用して同じ世代での共有メンバーの親を構築するには、共有メンバーの親のフィールド・タイプを「重複する世代」として定義します。重複する世代は、代替ロールアップと呼ばれることもあり、子の共有メンバーが存在する世代です。例に示すように、プロトタイプ・メンバーの親(プライマリ・ロールアップとも呼ばれる)の後にそれを配置します。
次のディメンション構築ルールでは、Dietの親と一部の共有メンバー(100-20、200-20、300-20および400-20)が示されています。

この例を再現するには、次のようにします。
-
Sample Basicキューブをインポートまたは構築します。その際には、Essbaseサーバーにあるファイル・カタログ内のギャラリから入手可能な、アプリケーション・ワークブックを使用します。
-
次のようなタブ区切りのデータ・ファイルを作成し、
shgenref.txt
という名前を付けて、Sample Basicキューブ・ディレクトリにアップロードします。100 Diet 100-20 200 Diet 200-20 300 Diet 300-20 400 Diet 400-20
-
「アプリケーション」ページで、アプリケーション(Sample)を展開します。
-
キューブ名(Basic)の右側にある「アクション」メニューから、インスペクタを起動します。
-
「スクリプト」タブを選択して、「ルール」をクリックします。
-
「作成」をクリックして、「ディメンション構築(標準)」を選択します。
-
「新規ルール」ダイアログで、次のように操作します。
-
ルール名を入力します(例: shgenref)。
-
「ソース・タイプ」で「ファイル」を選択し、「カタログ」をクリックし、
shgenref.txt
に移動します。「カタログ」をクリックする場合、そのファイルは、デフォルトではEssbaseサーバー上のキューブ・ディレクトリに配置されると想定されているため、Essbase Webインタフェースの「ファイル」セクションを使用してすでにアップロードしてある必要があります。そのファイルがクライアント・マシンにある場合は、「ファイル・ブラウザ」をクリックしてそのファイルを特定します。
-
「ヘッダー・レコード番号」および「ディメンション構築レコード番号」フィールドは0のままにします。ヘッダー・レコードは、ディメンション構築には役立ちません。
-
「デリミタ」の値を「カンマ」から「タブ」に変更します。
-
「続行」をクリックします。
-
ディメンション構築ルールは、未定義のフィールドと、フィールドの下のグリッドに移入されたプレビュー・データ(テキスト・ファイルからのデータ)とともに表示されます。
-
-
これは新しいルールであるため、ディメンションはまだ関連付けられていません。
- 「ディメンション」をクリックします。
- ディメンション名「Product」を選択または入力し、「追加」をクリックします。
- 「ディメンション」をクリックします。
-
次は、構築方法を定義し、他のディメンション構築操作手順を確認する必要があります。「Product」をクリックしてそのプロパティを編集します。
-
「構築方法」が「世代」であることを確認し、「OK」をクリックします。
-
フィールド1で「ディメンション」セレクタをクリックし、「Product」を選択します。
-
フィールド1の「タイプ」セレクタを「世代」に変更し、その下の世代番号を増分して「2」にします。
-
フィールド2で、「タイプ」セレクタを「重複する世代」に変更します。
-
フィールド3で、「タイプ」セレクタを「世代」に変更し、その下の世代番号を増分して「3」にします。
-
ルールを検証してから、保存して閉じます。エラーがある場合は、「有効なディメンション構築ルール・ファイルの要件」を参照してください。
-
ディメンション構築ジョブを実行します。
-
アウトラインを表示し、ProductメンバーであるDietを調べて、それに5つの共有メンバーが含まれたことを確認します(ディメンション構築により、さらに2つの共有メンバー(300-20と400-20)が既存の3つに追加されました)。
レベル参照を使用した同じ世代の共有メンバーの作成
「レベル」構築方法を使用してEssbaseアウトラインにおいて同じ世代での共有メンバーを構築するルールを設計する場合は、プロトタイプ・メンバーと共有メンバーの親がディメンション構築ルールにおいて同じレコードに存在する必要があります。
レベル参照による構築方法を使用して同じ世代の共有メンバーを作成するには、まずプライマリとセカンダリのロールアップ(親メンバー)が1つのレコードで指定されていることを確認します。セカンダリ・ロールアップは、すべて1つのレコードに指定するのであれば必要な数だけ指定できます。
共有メンバーのフィールド・タイプをLevelとして定義します。次に、下のフィールドにレベル番号を入力します。同じ世代の共有メンバーを作成するには、プライマリ・ロールアップと同じレベル番号が含まれるようにセカンダリ・ロールアップのレベル番号を設定します。データソースの処理中に、Essbaseで、指定したレベルで親が作成され、その下に共有メンバーが挿入されます。
次の例は、共有メンバー100-20 (Diet Cola)、200-20 (Diet Root Beer)、300-20 (Diet Cream Soda)および400-20 (Diet Fruit Soda)を作成するためのルール・ファイルとデータを示しています。

この例を再現するには、次のようにします。
-
Sample Basicキューブをインポートまたは構築します。その際には、Essbaseサーバーにあるファイル・カタログ内のギャラリから入手可能な、アプリケーション・ワークブックを使用します。
-
次のようなタブ区切りのデータ・ファイルを作成し、
shlev.txt
という名前を付けて、Sample Basicキューブ・ディレクトリにアップロードします。100-20 100 Diet 200-20 200 Diet 300-20 300 Diet 400-20 400 Diet
-
「アプリケーション」ページで、アプリケーション(Sample)を展開します。
-
キューブ名(Basic)の右側にある「アクション」メニューから、インスペクタを起動します。
-
「スクリプト」タブを選択して、「ルール」をクリックします。
-
「作成」をクリックして、「ディメンション構築(標準)」を選択します。
-
「新規ルール」ダイアログで、次のように操作します。
-
ルール名を入力します(例: shlev)。
-
「ソース・タイプ」で「ファイル」を選択し、「カタログ」をクリックし、
shlev.txt
に移動します。「カタログ」をクリックする場合、そのファイルは、デフォルトではEssbaseサーバー上のキューブ・ディレクトリに配置されると想定されているため、Essbase Webインタフェースの「ファイル」セクションを使用してすでにアップロードしてある必要があります。そのファイルがクライアント・マシンにある場合は、「ファイル・ブラウザ」をクリックしてそのファイルを特定します。
-
「ヘッダー・レコード番号」および「ディメンション構築レコード番号」フィールドは0のままにします。ヘッダー・レコードは、ディメンション構築には役立ちません。
-
「デリミタ」の値を「カンマ」から「タブ」に変更します。
-
「続行」をクリックします。
-
ディメンション構築ルールは、未定義のフィールドと、フィールドの下のグリッドに移入されたプレビュー・データ(テキスト・ファイルからのデータ)とともに表示されます。
-
-
これは新しいルールであるため、ディメンションはまだ関連付けられていません。
- 「ディメンション」をクリックします。
- ディメンション名「Product」を選択または入力し、「追加」をクリックします。
- 「ディメンション」をクリックします。
-
次は、構築方法を定義し、他のディメンション構築操作手順を確認する必要があります。「Product」をクリックしてそのプロパティを編集します。
-
「構築方法」を「レベル」に変更し、「OK」をクリックします。
-
フィールド1で「ディメンション」セレクタをクリックし、「Product」を選択します。
-
フィールド1の「タイプ」セレクタを「レベル」に変更し、その下のレベル番号を「0」にします。
-
フィールド2と3で、「タイプ」セレクタを「レベル」に変更し、それらの下のレベル番号を「1」にします。
-
ルールを検証してから、保存して閉じます。エラーがある場合は、「有効なディメンション構築ルール・ファイルの要件」を参照してください。
-
ディメンション構築ジョブを実行します。
-
アウトラインを表示し、ProductメンバーであるDietを調べて、それに5つの共有メンバーが含まれたことを確認します(ディメンション構築により、さらに2つの共有メンバー(300-20と400-20)が既存の3つに追加されました)。
親子参照を使用した同じ世代の共有メンバーの作成
「親子」構築方法を使用してEssbaseアウトラインにおいて同じ世代での共有メンバーを構築するルールを設計する場合は、ディメンション構築ルールで「親」および「子」フィールド・タイプを定義し、ディメンション・プロパティで共有が有効になっていることを確認します。
共有が有効になっている場合、Essbaseでは、新しい親の下に共有メンバーとして重複メンバーが自動的に作成されます。
図15-13 サンプル・ルール: 親子参照を使用して同じ世代で共有されるメンバー

この例を再現するには、次のようにします。
-
Sample Basicキューブをインポートまたは構築します。その際には、Essbaseサーバーにあるファイル・カタログ内のギャラリから入手可能な、アプリケーション・ワークブックを使用します。
-
次のようなタブ区切りのデータ・ファイルを作成し、
shparentchild.txt
という名前を付けて、Sample Basicキューブ・ディレクトリにアップロードします。100 100-20 200 200-20 300 300-20 400 400-20 Diet 100-20 Diet 200-20 Diet 300-20 Diet 400-20
-
「アプリケーション」ページで、アプリケーション(Sample)を展開します。
-
キューブ名(Basic)の右側にある「アクション」メニューから、インスペクタを起動します。
-
「スクリプト」タブを選択して、「ルール」をクリックします。
-
「作成」をクリックして、「ディメンション構築(標準)」を選択します。
-
「新規ルール」ダイアログで、次のように操作します。
-
ルール名を入力します(例: shparentchild)。
-
「ソース・タイプ」で「ファイル」を選択し、「カタログ」をクリックし、
shparentchild.txt
に移動します。「カタログ」をクリックする場合、そのファイルは、デフォルトではEssbaseサーバー上のキューブ・ディレクトリに配置されると想定されているため、Essbase Webインタフェースの「ファイル」セクションを使用してすでにアップロードしてある必要があります。そのファイルがクライアント・マシンにある場合は、「ファイル・ブラウザ」をクリックしてそのファイルを特定します。
-
「ヘッダー・レコード番号」および「ディメンション構築レコード番号」フィールドは0のままにします。ヘッダー・レコードは、ディメンション構築には役立ちません。
-
「デリミタ」の値を「カンマ」から「タブ」に変更します。
-
「続行」をクリックします。
-
ディメンション構築ルールは、未定義のフィールドと、フィールドの下のグリッドに移入されたプレビュー・データ(テキスト・ファイルからのデータ)とともに表示されます。
-
-
これは新しいルールであるため、ディメンションはまだ関連付けられていません。
- 「ディメンション」をクリックします。
- ディメンション名「Product」を選択または入力し、「追加」をクリックします。
- 「ディメンション」をクリックします。
-
次は、構築方法を定義し、他のディメンション構築操作手順を確認する必要があります。「Product」をクリックしてそのプロパティを編集します。
-
「構築方法」を「親子」に変更し、「共有」が有効になっていることを確認し、「OK」をクリックします。
-
フィールド1で「ディメンション」セレクタをクリックし、「Product」を選択します。
-
フィールド1の「タイプ」セレクタを「親」に変更します。
-
フィールド2で、「タイプ」セレクタを「子」に変更します。
-
ルールを検証してから、保存して閉じます。エラーがある場合は、「有効なディメンション構築ルール・ファイルの要件」を参照してください。
-
ディメンション構築ジョブを実行します。
-
アウトラインを表示し、ProductメンバーであるDietを調べて、それに5つの共有メンバーが含まれたことを確認します(ディメンション構築により、さらに2つの共有メンバー(300-20と400-20)が既存の3つに追加されました)。
異なる世代でのメンバーの共有
Essbaseディメンション構築ルールを使用して、様々な世代での共有メンバーを作成できます。レベル参照や親子参照など、様々な構築方法を使用してこれを実現できます。
場合によっては、アウトライン内の異なる世代の親に共有メンバーをロールアップする必要があります。たとえば、図15-14では、共有メンバーは第2世代 (Diet)と第3世代 (TBCとGrandma's)の親にロールアップされます。このアウトラインでは、TBC (The Beverage Company)が一部の飲料製品を外部ベンダーから購入することを想定しています。200-20 (Diet Root Beer)はGrandma'sという名前のベンダーから購入します。
図15-14 サンプル・アウトライン: 様々な世代で共有されるメンバー

親子参照を使用した異なる世代の共有メンバーの作成
Essbaseディメンション構築ルールで、親子参照による構築方法を使用して様々な世代の共有メンバーを作成するには、「親」と「子」のフィールド・タイプを定義します。
共有が有効になっている間は、Essbaseで、新しい親の下に共有メンバーとして重複メンバーが自動的に作成されます。
図15-15 サンプル・ルール・ファイル: 親子参照を使用して様々な世代で共有されるメンバー

この例を再現するには、次のようにします。
-
Sample Basicキューブをインポートまたは構築します。その際には、Essbaseサーバーにあるファイル・カタログ内のギャラリから入手可能な、アプリケーション・ワークブックを使用します。
-
次のようなタブ区切りのデータファイルを作成し、
shdiffgenparchild.txt
という名前を付けて、Sample Basicキューブ・ディレクトリにアップロードします。100 100-20 200 200-20 300 300-30 Diet 100-20 Diet 200-20 Diet 300-30 Vendors TBC Vendors Grandma’s TBC 100-20 TBC 300-30 Grandma’s 200-20
-
「アプリケーション」ページで、アプリケーション(Sample)を展開します。
-
キューブ名(Basic)の右側にある「アクション」メニューから、インスペクタを起動します。
-
「スクリプト」タブを選択して、「ルール」をクリックします。
-
「作成」をクリックして、「ディメンション構築(標準)」を選択します。
-
「新規ルール」ダイアログで、次のように操作します。
-
ルール名を入力します(例: shdiffgenparchild)。
-
「ソース・タイプ」で「ファイル」を選択し、「カタログ」をクリックし、
shdiffgenparchild.txt
に移動します。「カタログ」をクリックする場合、そのファイルは、デフォルトではEssbaseサーバー上のキューブ・ディレクトリに配置されると想定されているため、Essbase Webインタフェースの「ファイル」セクションを使用してすでにアップロードしてある必要があります。そのファイルがクライアント・マシンにある場合は、「ファイル・ブラウザ」をクリックしてそのファイルを特定します。
-
「ヘッダー・レコード番号」および「ディメンション構築レコード番号」フィールドは0のままにします。ヘッダー・レコードは、ディメンション構築には役立ちません。
-
「デリミタ」の値を「カンマ」から「タブ」に変更します。
-
「データ数のプレビュー」を11に増やします。
-
「続行」をクリックします。
-
ディメンション構築ルールは、未定義のフィールドと、フィールドの下のグリッドに移入されたプレビュー・データ(テキスト・ファイルからのデータ)とともに表示されます。
-
-
これは新しいルールであるため、ディメンションはまだ関連付けられていません。
- 「ディメンション」をクリックします。
- ディメンション名「Product」を選択または入力し、「追加」をクリックします。
- 「ディメンション」をクリックします。
-
次は、構築方法を定義し、他のディメンション構築操作手順を確認する必要があります。「Product」をクリックしてそのプロパティを編集します。
-
「構築方法」が「親子」であることを確認します。
-
「共有」をクリックし、「OK」をクリックします。
-
フィールド1で「ディメンション」セレクタをクリックし、「Product」を選択します。
-
フィールド1の「タイプ」セレクタを「親」に変更します。
-
フィールド2で、「タイプ」セレクタを「子」に変更します。
-
ルールを検証してから、保存して閉じます。エラーがある場合は、「有効なディメンション構築ルール・ファイルの要件」を参照してください。
-
ディメンション構築ジョブを実行します。
-
アウトラインを表示し、Productディメンションを調べて、それに新規メンバーVendor、TBCおよびGrandma'sがあり、それらにはDietでも使用されている共有メンバーがあることを確認します。
レベル参照を使用した異なる世代の共有メンバーの作成
Essbaseディメンション構築ルールで、レベル参照による構築方法を使用して様々な世代の共有メンバーを作成するには、プライマリとセカンダリのロールアップが1つのレコードに指定されていることを確認します。セカンダリ・ロールアップは、すべて1つのレコードに指定するのであれば必要な数だけ指定できます。
共有メンバーのフィールド・タイプをLevelとして定義してから、レベル番号を入力します。データソースの処理中に、Essbaseで、指定したレベルで親が作成され、その下に共有メンバーが挿入されます。
たとえば、Productの100-20、200-20および300-30を、Dietという親と、TBCとGrandma'sという2つの親との間で共有するには、次に示すようなサンプル・データとルールを使用します。
図15-16 サンプル・ルール・ファイル: レベル参照を使用して様々な世代で共有されるメンバー

この例を再現するには、次のようにします。
-
Sample Basicキューブをインポートまたは構築します。その際には、Essbaseサーバーにあるファイル・カタログ内のギャラリから入手可能な、アプリケーション・ワークブックを使用します。
-
次のようなタブ区切りのデータ・ファイルを作成し、
shdifflevref.txt
という名前を付けて、Sample Basicキューブ・ディレクトリにアップロードします。100-20 100 Diet TBC Vendors 200-20 200 Diet Grandma’s Vendors 300-30 300 Diet TBC Vendors
-
「アプリケーション」ページで、アプリケーション(Sample)を展開します。
-
キューブ名(Basic)の右側にある「アクション」メニューから、インスペクタを起動します。
-
「スクリプト」タブを選択して、「ルール」をクリックします。
-
「作成」をクリックして、「ディメンション構築(標準)」を選択します。
-
「新規ルール」ダイアログで、次のように操作します。
-
ルール名を入力します(例: shdifflevref)。
-
「ソース・タイプ」で「ファイル」を選択し、「カタログ」をクリックし、
shdifflevref.txt
に移動します。「カタログ」をクリックする場合、そのファイルは、デフォルトではEssbaseサーバー上のキューブ・ディレクトリに配置されると想定されているため、Essbase Webインタフェースの「ファイル」セクションを使用してすでにアップロードしてある必要があります。そのファイルがクライアント・マシンにある場合は、「ファイル・ブラウザ」をクリックしてそのファイルを特定します。
-
「ヘッダー・レコード番号」および「ディメンション構築レコード番号」フィールドは0のままにします。ヘッダー・レコードは、ディメンション構築には役立ちません。
-
「デリミタ」の値を「カンマ」から「タブ」に変更します。
-
「続行」をクリックします。
-
ディメンション構築ルールは、未定義のフィールドと、フィールドの下のグリッドに移入されたプレビュー・データ(テキスト・ファイルからのデータ)とともに表示されます。
-
-
これは新しいルールであるため、ディメンションはまだ関連付けられていません。
- 「ディメンション」をクリックします。
- ディメンション名「Product」を選択または入力し、「追加」をクリックします。
- 「ディメンション」をクリックします。
-
次は、構築方法を定義し、他のディメンション構築操作手順を確認する必要があります。「Product」をクリックしてそのプロパティを編集します。
-
「構築方法」が「レベル」であることを確認し、「OK」をクリックします。
-
フィールド1で「ディメンション」セレクタをクリックし、「Product」を選択します。
-
フィールド1の「タイプ」セレクタを「レベル」に変更し、その下のレベル番号を「0」にします。
-
フィールド2から4で、「タイプ」セレクタを「レベル」に変更し、それらのレベル番号を「1」にします。
-
フィールド5で、「タイプ」セレクタを「レベル」に変更し、そのレベル番号を「2」にします。
-
ルールを検証してから、保存して閉じます。エラーがある場合は、「有効なディメンション構築ルール・ファイルの要件」を参照してください。
-
ディメンション構築ジョブを実行します。
-
アウトラインを表示し、Productディメンションを調べて、それに新規メンバーVendor、TBCおよびGrandma'sがあり、それらにはDietでも使用されている共有メンバーがあることを確認します。
非レベル0メンバーの共有
場合によっては、非レベル0メンバー(最下位でない世代のメンバー)を共有する必要があります。たとえば、図15-17では、100、200および300がTBCとGrandma'sによって共有されています。このアウトラインは、TBCが一部の製品ラインを外部ベンダーから購入することを想定しています。たとえば、200 (すべてのルート・ビール)をGrandma'sという名前のベンダーから購入します。
図15-17 サンプル・アウトライン: 様々な世代で共有される非レベル0メンバー

非レベル0メンバーの共有は、親子参照またはレベル参照を使用して実行できます。
親子参照を使用した非レベル0共有メンバーの作成
親子参照による構築方法は、最も用途の広い共有メンバー作成方法です。この構築方法には、世代参照やレベル参照の構築方法とは異なり、アウトライン内の共有メンバーの位置に関する制限がありません。
親子参照による構築方法を使用して同じ世代のレベル0以外の共有メンバーを作成するには、「親」と「子」のフィールド・タイプを定義します。Essbaseで共有を許可する設定になっていることを確認します。共有が有効になっている場合、Essbaseでは、新しい親の下に共有メンバーとして重複メンバーが自動的に作成されます。
図15-18 サンプル・ルール・ファイル: 親子参照を使用して同じ世代で共有される非レベル0メンバー

レベル参照を使用した非レベル0共有メンバーの作成
レベル参照による構築方法を使用して非レベル0の共有メンバーを作成するには、プライマリとセカンダリのロールアップが1つのレコードに指定されていることを確認します。セカンダリ・ロールアップは、すべて1つのレコードに指定するのであれば無制限で指定できます。
共有メンバーの親のフィールド・タイプを重複レベルとして定義してから、レベル番号を入力します。同じ世代の共有メンバーを作成するには、プライマリ・ロールアップと同じレベル番号が含まれるようにセカンダリ・ロールアップのレベル番号を設定します。データソースの処理中に、Essbaseで、指定したレベルで親が作成され、その下に共有メンバーが挿入されます。
たとえば、製品ライン100、200および300をSodaという親と、TBCおよびGrandma'sという親との間で共有するには、次に示すようなサンプル・データ・ファイルとルール・ファイルを使用します。このデータソースおよびルール・ファイルは、アウトラインにDiet、TBCおよびGrandma'sメンバーが存在する場合にのみ機能します。「重複するレベル」フィールドは、指定したレベル・フィールドがアウトライン内にすでに存在する場合を除き、常にディメンションの子(世代2)として作成されます。
図15-19 サンプル・ルール・ファイル: レベル参照を使用して様々な世代で共有される非レベル0メンバー

レベル参照を使用した複数のロールアップの作成
複数のパースペクティブから合計を取得できるように、レベル参照による構築方法を使用してアウトライン内の異なるレベルに共有メンバーを配置することもできます。次の例は、Productディメンションのレベルに対する構築手順を示しています。

レコードが長いため、この2番目の図ではルール・ファイルを右にスクロールすると表示されていないメンバーが表示されます。
例に示されたルール・ファイルおよびデータを使用してディメンション構築を実行すると、次に示すアウトラインが構築されます。
図15-20 サンプル・アウトライン: 様々なレベルでの複数のロールアップ

この例では、パッケージ・タイプ(Cans)のみでなく、パッケージ材料による分析(アルミニウム缶とスチール缶の売上を比較するなど)も可能です。
Productは疎ディメンションであるため、代替アウトライン設計を使用して同じ情報を取得できます。たとえば、Canの下位にレベル0メンバーとしてパッケージ・タイプがSteelとAluminumのマルチレベルの属性ディメンションを作成するとします。アウトラインの設計のガイドラインについては、データベース設計の分析を参照してください。
複数のデータソースからの共有ロールアップの作成
1つのディメンションのデータが複数のデータソースに含まれていることがよくあります。複数のデータソースからディメンションを構築し、複数のロールアップを作成する場合は、最も適切な構築方法を使用して最初のデータソースをロードした後、親子参照による構築方法を使用してその他のすべてのデータソースをロードします。Essbaseで共有を許可する設定になっていることを確認します。
たとえば、次の製品データソースを使用します。
"Soft Drinks" Cola
"Soft Drinks" "Root Beer"
Cola TBC
"Root Beer" Grandma’s
Essbaseでは、図15-21に示されているアウトラインが構築されます:
図15-21 サンプル・アウトライン: Soft Drinks

続いて、次の2番目のデータソースをロードし、親子構築方法を使用して製品とベンダーを関連付けます。Essbaseで共有を許可する設定になっていることを確認します。
Vendor TBC
Vendor Grandma’s
Essbaseでは、図15-22に示されているアウトラインが構築されます:
図15-22 サンプル・アウトライン: Vendors (共有ロールアップ)
