同じ世代での共有メンバーの作成
Essbaseアウトラインで同じ世代でメンバーを共有するのが、メンバーを共有する最も簡単な方法です。同じ世代で共有メンバーを作成するには、適切なディメンション構築方法を使用して、ルールの設計時に世代、レベルまたは親子参照を特定します。
同じ世代で共有されるメンバーは、同じ分岐にロールアップされます。次の例では、Sample Basicに基づいて、強調表示されたProductメンバー100-20 (Diet Cola)は第2世代であり、別の親メンバーDietによって共有されています。親(100とDiet)は両方とも同じ分岐(Productディメンション)にロールアップされます。
次の図では、100-400の下にある強調表示されているすべてのProductメンバーは、保管されているプロトタイプ・メンバーであり、Dietの下にあるすべてのメンバーは、保管されていない共有メンバーです。
図14-12 サンプル・アウトライン: 同じ世代で共有されるメンバー

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

この例を再現するには、次のようにします。
-
Sample Basicキューブをインポートまたは構築します。その際には、Essbaseサーバーにあるファイル・カタログ内のギャラリから入手可能な、アプリケーション・ワークブックを使用します。
-
次のようなタブ区切りのデータ・ファイルを作成し、
shgenref.txt
という名前を付けて、Sample Basicキューブ・ディレクトリにアップロードします。100 Diet 100-20 200 Diet 200-20 300 Diet 300-20 400 Diet 400-20
-
「アプリケーション」ページでアプリケーションを開き、データベース(キューブ)を開きます。
-
「スクリプト」タブを選択して、「ルール」をクリックします。
-
「作成」をクリックして、「ディメンション構築(標準)」を選択します。
-
「新規ルール」ダイアログで、次のように操作します。
-
ルール名を入力します(例: 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つのレコードに指定するのであれば必要な数だけ指定できます。
ノート:
"ロールアップ"は、プロトタイプと共有メンバーが集計されるメンバーです。次の例では、共有メンバーはフィールド1にあり、プライマリ・ロールアップはフィールド2にあり、セカンダリ・ロールアップはフィールド3にあります。
共有メンバーのフィールド・タイプをLevelとして定義してから、その下にレベル番号を入力します。セカンダリ・ロールアップのレベル番号をプライマリ・ロールアップと同じ番号に設定します。データソースの処理中に、Essbaseで、指定したレベルで親が作成され、その下に共有メンバーが挿入されます。

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