メンバーのデータ値の保管方法の決定
メンバーのデータ値がEssbaseによっていつどのように保管されるかを決定できます。たとえば、ユーザーから要求された場合にのみメンバーの値を計算し、その後はデータ値を破棄するようにEssbaseに指定できます。各ストレージ・プロパティについて、次の表で説明します。
表6-4 ストレージ・プロパティの選択
ストレージ・プロパティ | 動作 |
---|---|
保管 |
データ値をメンバーとともに保管します。 |
動的計算 |
ユーザーが要求するまでデータ値を計算せず、その後はデータ値を破棄します。 |
ラベルのみ |
ラベルのみのメンバーの用途は、他のメンバーのグループ化またはラベル付けです。ラベルのみのメンバーのデータはデータベースに保管されません。 |
共有メンバー |
値をメンバー間で共有します。たとえば、Sample.Basicデータベースでは、100-20メンバーは100の親の下に保管され、Dietの親の下で共有されます。 |
共有しない |
メンバーを暗黙的に共有できないようにします。 共有しないとしてタグ付けされたメンバーは、明示的にのみ共有できます。メンバーを明示的に共有するには、同じ名前を持つ共有メンバーを作成し、共有としてタグ付けします。 |
メンバーのストレージ・プロパティを設定するには、アプリケーション・ワークブックを使用します。ディメンション・ワークシートの理解を参照してください。
動的計算メンバー
メンバーが動的計算の場合、ユーザーが要求するまで、そのメンバーの値はEssbaseによって計算されません。ユーザーが表示した後、そのメンバーの値はEssbaseによって保管されません。
属性ディメンションのメンバーはEssbaseによって自動的に動的計算としてタグ付けされます。この設定は変更できません。
データ値の動的計算を参照してください。
ラベルのみのメンバー
ラベルのみのメンバーには値は関連付けられません。これらは、メンバーをグループ化したり、Smart Viewからのナビゲーションおよびレポートを容易にするために使用します。通常、ラベルのみのメンバーには、非集計プロパティを指定する必要があります。「メンバー集計プロパティ」を参照してください。
ラベルのみのメンバーに属性を関連付けることはできません。属性アソシエーションを持つ基本ディメンション・メンバーをラベルのみとしてタグ付けすると、Essbaseによって属性アソシエーションは削除され、警告メッセージが表示されます。
ラベルのみのメンバーの子孫は、動的計算としてタグ付けできません。次の例では、アウトラインの確認時に、ChildBはラベルのみとしてタグ付けできないことを示すエラー・メッセージがEssbaseによって発行されます。
ParentA = Label Only
ChildB = Label Only
DescendantC = Dynamic Calc
DescendantCをデータの保管としてタグ付けすると、問題は解決します。
共有メンバー
Essbase共有メンバーは、アウトライン内の複数の親間で同じメンバーを計算するのに役立ちます。これは、アイテムが複数のカテゴリに属している場合に便利です。共有メンバーに関連付けられたデータ値は、同じ名前を持つ別のアウトライン・メンバー(プロトタイプ・メンバーと呼ばれます)から取得されます。
共有メンバーは、プロトタイプ・メンバーに含まれているデータへのポインタを保管し、そのデータは1回のみ保管されます。メンバーを共有として定義するには、同じ名前のプロトタイプ・メンバーが存在する必要があります。たとえば、Sample.Basicデータベースでは、100の下の100-20メンバーは、そのメンバーのデータを保管します。Dietの下の100-20メンバーは、その値を指しています。
共有メンバーは、通常、複数の親にまたがる同じメンバーを計算するために使用されます。たとえば、100とDietの両方の親にあるDiet Colaメンバーを計算するためです。
共有メンバーを使用すると、ディメンション全体でメンバーを繰り返し使用できます。Essbaseによってデータ値が保管されるのは1回のみですが、複数の場所に表示されます。データ値を1回のみ保管することで、領域が節約され、処理効率が向上します。
共有メンバーの詳細は、次の項を参照してください。
ノート:
同じ名前を持つメンバーが、共有メンバーではなく重複メンバーであることがあります。重複メンバーのアウトラインの作成および使用を参照してください。
共有メンバーのガイドライン
Essbase共有メンバーには、子、UDA、属性または式を含めないでください。プロトタイプと同じディメンション内にあり、アウトライン順序でその後に続く必要があります。共有メンバーは一意の別名を持つことができ、他のメンバーと同じ名前を持つことができます。
共有メンバーの作成時のエラーを回避するには、次のガイドラインに従ってください:
-
共有メンバーは、プロトタイプ・メンバーと同じディメンションにある必要があります。たとえば、Sample.Basicデータベースの100-20メンバーは、どちらもProductディメンションにあります。
-
プロトタイプ・メンバーは、アウトラインの順序で共有メンバーよりも前である必要があります。
-
共有メンバーは子を持つことはできません。
-
同じ名前を持つことができる共有メンバーの数に制限はありません。
-
共有メンバーにUDAまたは式を割り当てることはできません。
-
重複メンバー名を持つメンバーに対して共有メンバーを作成できます。
-
共有メンバーに属性を関連付けることはできません。
-
共有メンバーに勘定科目プロパティを割り当てる場合、共有メンバー上の勘定科目プロパティが変更されても、それらの勘定科目プロパティの値はプロトタイプ・メンバーから取得されます。
-
共有メンバーに別名を割り当てることができます。
-
共有メンバーの別名が空の場合、Essbaseでは保管済メンバーの別名が使用されます。
-
共有メンバーの別名を割り当て、プロトタイプ・メンバーの別名を変更した場合、共有メンバーの別名は変更されません。
-
プロトタイプ・メンバーは、その共有メンバーの前に配置する必要があります。
-
属性計算の一部となるプロトタイプ・メンバーと共有メンバーの関係が複雑にならないようにしてください。そうしないと、計算で予期しない結果が戻されることがあります。属性計算と共有メンバーの理解を参照してください。
-
共有メンバーとそのプロトタイプ・メンバーを同じ親の下に配置できません。重複メンバーのアウトラインでは、兄弟は一意である必要があります。
-
グリッド・クライアント(Smart Viewなど)では、修飾名([Parent].[Child]など)で表示することを指定できるため、共有メンバーをそのプロトタイプ・メンバーと簡単に区別できます。共有メンバーは、重複メンバー名が有効になるようにアウトラインを設定していなくても、修飾名で表示できます。また、修飾メンバー名を使用して、グリッド内またはメンバー選択で共有メンバーを検索できます。
ドリルダウン時の共有メンバー取得
ズーム・イン(ドリルダウン)操作中に、Essbaseは共有メンバーではなくプロトタイプ・メンバーを取得します(使用可能な場合)。共有メンバーのズーム・アウト(ドリルアップ)は、プロトタイプではなく、共有メンバーの親を取得します。
Essbaseでは、スプレッドシートまたはグリッド・クライアント内の共有メンバーの場所に応じて、ドリルダウン時に共有メンバーが取得されます。Essbaseは、グリッドの取得時に次のルールに従います:
-
デフォルトでは、プロトタイプ・メンバー(共有メンバーではありません)を取得します。
-
スプレッドシートの最下部から取得が開始されます。
-
共有メンバーの親が、共有メンバーのいずれかのプロトタイプ・メンバーの兄弟である場合、プロトタイプ・メンバーが取得されます。
単一ディメンションからの共有メンバーの例
Sample.BasicアウトラインのEastディメンションのプロトタイプ・メンバーに基づくすべての共有メンバーを使用してtestディメンションを作成した場合、アウトラインは図6-1に示すようになります。
図6-1 単一ディメンションからの共有メンバー

共有メンバーからズーム・アウトすると、プロトタイプ・メンバーではなく、共有している親が返されます。たとえば、Floridaからズーム・アウトすると、Essbaseは共有されている親のtest
を返します。
Eastの子のみを取得した場合、Essbaseではデフォルトでプロトタイプ・メンバーが取得されるため、結果はすべてプロトタイプ・メンバーからのものになります。
ただし、スプレッドシート内でその上のtestの子を持つデータを取得すると、Essbaseでは共有メンバーが取得されます。
New York
Massachusetts
Florida
Connecticut
New Hampshire
test
test
をその最後の2つの子の上に移動すると、Essbaseでは最初の3つの子は共有メンバーとして取得されますが、最後の2つはプロトタイプ・メンバーとして取得されます。同様に、前述のリストの途中に共有メンバーの兄弟ではないメンバーを挿入すると(たとえば、FloridaとConnecticutの間にCaliforniaを挿入)、Essbaseでは兄弟ではないメンバーと親の間(この場合は、Californiaとtestの間)でのみ共有メンバーが取得されます。
世代間共有メンバーでの取得の例
図6-2に示すように、Sample.Basicアウトラインを変更して、対応するプロトタイプ・メンバーが親の兄弟であるような共有メンバーを作成できます。
図6-2 世代間共有メンバーでの取得

この順序で共有メンバーを含むスプレッドシートを作成すると、Essbaseによってすべての共有メンバーが取得されますが、例外として、共有メンバーwestではなくプロトタイプ・メンバーWestが取得されます。
West
New York
Massachusetts
Connecticut
New Hampshire
test
Essbaseによってこの順序でメンバーが取得されるのは、test
がwest
の親であり、対応するプロトタイプ・メンバーWest
の兄弟であるためです。
暗黙的な共有メンバー
暗黙的な共有が有効になっている場合、親メンバーは、単一の子メンバーの値(1つのみの場合)または唯一の集計する子の値(集計する子のみがある場合、つまり~
または^
以外の演算子を持つ)を暗黙的に共有します。
このような親は、次の場合を除き、暗黙的な共有メンバーです:
- 式がある
- 「共有しない」に設定されている
- 暗黙的な共有が有効になっていない
デフォルトでは、暗黙的な共有はEssbase 21cでは有効になっていません。詳細は、IMPLIED_SHARE_ON_CREATE構成設定を参照するか、有効にしてください。
暗黙的な共有が有効な場合、Essbaseでは、次の状況で、共有メンバー関係が(暗黙的に)想定されます。
-
親が1つの子のみを持っていますこの状況では、親と子に同じデータが含まれます。Essbaseによって子の集計プロパティは無視され、データは1回のみ保管されるため、親は子と暗黙的な共有関係を持ちます。次の例では、親500は1つの子500-10のみを持つため、親はその子の値を共有します。
500 (+) 500-10 (+)
-
親が親に連結される1つの子のみを持っています親に4つの子があるが、3つは非集計としてマークされている場合、親と集計される子のデータは同じになります。Essbaseによって子の集計プロパティは無視され、データは1回のみ保管されるため、親は子と暗黙的な共有関係を持ちます。次の例では、親500にロールアップされる子は500‑10のみです。他の子は集計なし(~)としてマークされているため、親は暗黙的に500‑10の値を共有します。
500 (+) 500-10 (+) 500-20 (~) 500-30 (~)
前述のケースは、親メンバーに式がある場合には適用されません。
メンバーが暗黙的に共有されないようにするには、親を共有しないとしてマークすることで、かわりにデータが複製されるようにします。