メンバーによるデータ値の格納方法のオプション
メンバーのデータ値がEssbaseによっていつどのように保管されるかを決定できます。たとえば、ユーザーから要求された場合にのみメンバーの値を計算し、その後はデータ値を破棄するようにEssbaseに指定できます。
使用可能な各メンバー・ストレージ・プロパティについて、次のように説明します。
表5-4ストレージ・プロパティの選択
| ストレージ・プロパティ | 動作 |
|---|---|
|
店舗 |
データ値をメンバーとともに保管します。 |
|
動的計算 |
ユーザーが要求するまでデータ値を計算せず、その後はデータ値を破棄します。 |
|
ラベルのみ |
ラベルのみのメンバーの用途は、他のメンバーのグループ化またはラベル付けです。ラベルのみのメンバーのデータはデータベースに保管されません。 |
|
共有メンバー |
値をメンバー間で共有します。たとえば、Sample Basicデータベースでは、100-20メンバーは100の 親の下に保管され、Dietの親の下で共有されます。 |
|
共有しない |
メンバーを暗黙的に共有できないようにします。 共有しないとしてタグ付けされたメンバーは、明示的にのみ共有できます。メンバーを明示的に共有するには、同じ名前を持つ共有メンバーを作成し、共有としてタグ付けします。 |
Essbase Webインタフェースを使用してメンバー・ストレージ・プロパティを設定するには、編集するアウトラインを開き、メンバーを選択して、その一般プロパティを編集します。必要に応じて「データ・ストレージ・タイプ」を変更します。詳細は、「一般プロパティの設定」を参照してください。
アプリケーション・ワークブックまたはキューブ・デザイナを使用してメンバー・ストレージ・プロパティを設定している場合は、適切なディメンション・ワークシートの各メンバーの横にある関連するコードでSTORAGEプロパティを更新します。Sは格納用、Xは動的計算用、Oはラベルのみ用、Nは共有なし用です。詳細は、「ディメンション・ワークシートの理解」を参照してください。
動的計算メンバー
メンバーが動的計算の場合、ユーザーが要求するまで、そのメンバーの値はEssbaseによって計算されません。ユーザーが表示した後、そのメンバーの値はEssbaseによって保管されません。
属性ディメンションのメンバーはEssbaseによって自動的に動的計算としてタグ付けされます。この設定は変更できません。
「データ値の動的計算」も参照してください。
ラベルのみのメンバー
Essbaseのラベルのみのメンバーには、関連付けられたデータがありません。これらは、メンバーをグループ化したり、Smart Viewからのナビゲーションおよびレポートを容易にするために使用します。通常、ラベルのみのメンバーには、非集計プロパティを指定する必要があります。
ラベルのみのメンバーに属性を関連付けることはできません。属性アソシエーションを持つ基本ディメンション・メンバーをラベルのみとしてタグ付けすると、Essbaseによって属性アソシエーションは削除され、警告メッセージが表示されます。
ラベルのみのメンバーの子孫は、動的計算としてタグ付けできません。次の例では、アウトラインの確認時に、ChildBはラベルのみとしてタグ付けできないことを示すエラー・メッセージがEssbaseによって発行されます:
ParentA = Label Only
ChildB = Label Only
DescendantC = Dynamic CalcDescendantCをデータの保管としてタグ付けすると、問題は解決します。
共有のメンバー
Essbase共有メンバーは、アウトライン内の複数の親にまたがって同じメンバーを計算するのに役立ちます。これは、アイテムが複数のカテゴリに属する場合に便利です。共有メンバーに関連付けられたデータ値は、プロトタイプ・メンバーと呼ばれる同じ名前を持つ別のアウトライン・メンバーから導出されたものです。
共有メンバーはプロトタイプ・メンバーに含まれるデータへのポインタを保管し、データは一度だけ保管されます。メンバーを共有として定義するには、同じ名前のプロトタイプ・メンバーが存在する必要があります。たとえば、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アウトラインの東ディメンションのプロトタイプ・メンバーに基づくすべての共有メンバーのテスト・ディメンションを作成した場合、アウトラインは図5-1に示すようになります。
図5-1単一ディメンションからの共有メンバー

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

この順序で共有メンバーを含むスプレッドシートを作成すると、Essbaseによってすべての共有メンバーが取得されますが、例外として、共有メンバーwestではなくプロトタイプ・メンバーWestが取得されます。
West
New York
Massachusetts
Connecticut
New Hampshire
testEssbaseによってこの順序でメンバーが取得されるのは、testがwestの親であり、対応するプロトタイプ・メンバーWestの兄弟であるためです。
暗黙共有メンバー
暗黙的な共有が有効な場合、親メンバーは、単一の子メンバー(1つのみ存在する場合)、またはそれらの唯一の連結子の値(連結する子が1つのみ存在する場合、つまり~または^以外の演算子を持つ場合)を暗黙的に共有します。
このような親は、次の場合を除き、暗黙の共有メンバーです。
- Formulaがあります。
- 「共有しない」に設定されています
- 暗黙的な共有が有効になっていません
デフォルトでは、暗黙の共有は有効になっていません。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 (~)
上記のケースは、親メンバーに式がある場合には適用されません。
メンバーが暗黙的に共有されないようにするには、親を共有しないとしてマークすることで、かわりにデータが複製されるようにします。