異なる世代での共有メンバーの作成
Essbaseディメンション構築ルールを使用して、様々な世代で共有メンバーを作成できます。これは、ソース・データに最も適した構築方法(レベル参照または親子参照)を使用して実行できます。
場合によっては、アウトライン内の異なる世代の親に共有メンバーをロールアップする必要があります。たとえば、図14-14では、共有メンバーは世代2 (Diet)と世代3 (TBCとGrandma's)の親にロールアップされます。このアウトラインでは、TBC (The Beverage Company)が一部の飲料製品を外部ベンダーから購入することを想定しています。200-20 (Diet Root Beer)はGrandma'sという名前のベンダーから購入します。
図14-14 サンプル・アウトライン: 様々な世代で共有されるメンバー

親子参照を使用した異なる世代の共有メンバーの作成
Essbaseディメンション構築ルールで、親子参照による構築方法を使用して様々な世代の共有メンバーを作成するには、「親」と「子」のフィールド・タイプを定義します。共有が有効になっている間は、Essbaseで、新しい親の下に共有メンバーとして重複メンバーが自動的に作成されます。
図14-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
-
「アプリケーション」ページでアプリケーションを開き、データベース(キューブ)を開きます。
-
「スクリプト」タブを選択して、「ルール」をクリックします。
-
「作成」をクリックして、「ディメンション構築(標準)」を選択します。
-
「新規ルール」ダイアログで、次のように操作します。
-
ルール名を入力します(例: 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つの親との間で共有するには、次に示すようなサンプル・データとルールを使用します。
図14-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
-
「アプリケーション」ページでアプリケーションを開き、データベース(キューブ)を開きます。
-
「スクリプト」タブを選択して、「ルール」をクリックします。
-
「作成」をクリックして、「ディメンション構築(標準)」を選択します。
-
「新規ルール」ダイアログで、次のように操作します。
-
ルール名を入力します(例: 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でも使用されている共有メンバーがあることを確認します。