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

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

この順序で共有メンバーを含むスプレッドシートを作成すると、Essbaseは、参照メンバーWestを除くすべての共有メンバーを取得しますが、共有メンバーWestは取得しません:
West
New York
Massachusetts
Connecticut
New Hampshire
test
test
はwest
の親であり、対応する参照メンバーWest
の兄弟であるため、Essbaseはこの順序でメンバーを取得します。