メンバツリー

設計者 管理者

メンバツリーとは何か

ディメンション内で、メンバはツリーをかたちづくることがあります。ひとつのディメンションに複数のツリーを含めることも可能です(ただし下記「メンバツリーは誰が設けるか」でご説明している制限があります)。たとえば、部門ディメンションには、地域別のツリーと事業領域別のツリーを含めてもかまいません。

ひとつのメンバは複数のツリーに属することが可能です。「大阪支店法人営業部」は、地域別のツリーでは「大阪支店」に属し、事業領域別のツリーでは「法人事業部門」に属するといった具合です。

メンバツリーの階層の深さに制限はありません。また、ひとつのメンバツリー内で、階層の数が一律である必要もありません。

メンバツリーは誰が設けるか

ディメンション内にいくつのツリーを設けるかを決めるのは設計者の役割です。設計者が設けたルートメンバ(最上位メンバ)の数だけ、メンバツリーができます。ただしこれには以下の例外があります。

  • シナリオ・相対期間・表示形式・会計年度の各ディメンションのメンバツリーは自動的に作成されます。設計者が追加することはできません。

  • 増減科目ディメンションでは、ルートメンバは、システム仕様として決められています。したがって、設計者は新たなメンバツリーを追加することができません。

  • 設計者は、ツリー構造に関する決定を管理者に委ねることもできます。ディメンション内にルートメンバがまったくない状態で、そのディメンションの設計を完了した場合、管理者は任意のルートメンバを登録することができます。

メンバツリーの用途

メンバツリーの用途は以下の2つです:

  • 集計計算

  • メンバのグルーピング

(1)集計計算

数値データは、メンバツリーに沿って集計されます。

(2)メンバのグルーピング

勘定科目ディメンションにおいて、値を保持するためではなく、いくつかのメンバをグルーピングするために、親メンバを設けることができます。その場合には、その親メンバ(勘定科目)のデータタイプとして「なし」を指定してください。そうすれば親メンバへの集計計算は行われません。

メンバツリーに関するルール

メンバツリーの設定に際しては、いくつかのルールに従う必要があります。これらのルールに従わないツリーは登録できません。

  • メンバの親子関係がループしてはいけません。

  • リーフメンバは子メンバを持てません(「リーフメンバ」とは、プロパティ「リーフ区分」の値が「リーフである」となっているメンバを意味します)。

  • 原則として、同一メンバを、ひとつのメンバ配下の複数個所に置くことはできません。ただし、勘定科目ディメンションにおいて、後者のメンバのデータタイプが「なし」である場合は、その配下の複数個所に同一メンバを置くことができます(データタイプ「なし」の勘定科目メンバはグルーピングの目的のみで用いられるためです)。

  • 親メンバと子メンバのメンバタイプの組み合わせが一定の基準を満たしている必要があります。具体的には:

    1. 親メンバと子メンバのメンバタイプが異なる場合、その組み合わせは、メンバタイプの上下関係に従うことが必要です。上下関係は、上から順に、
      システム予約 > テンプレート > ユーザ定義
      です。

    2. 同一の親メンバの直下に子メンバが複数ある場合、それら子メンバのメンバタイプはすべて同じでなければなりません。

      (この2つの規則は、メンバツリーにおいて、システム予約メンバ・テンプレートメンバ・ユーザ定義メンバが、その順に上位から整然と層をなすことを保証します。これによって、設計者と管理者の責任範囲が明確に区分されます)

勘定科目ディメンションにおいては、上記以外に以下の制約があります。

  • 親メンバと子メンバのデータタイプは、原則として同じでなければなりません。例外として、親メンバのデータタイプが「なし」であれば、子メンバのデータタイプは何でもかまいません。