ビュー元帳

設計者 管理者

一般の元帳では、異なるディメンション間でのクロス集計が可能です。例えば、売上を、地域と得意先業態(例えば、食品専門店、総合スーパー)という二つの軸でクロス集計したい場合、地域ディメンションと得意先業態ディメンションを設け、それらを使用する元帳を設けることで、クロス集計が可能となります。

一方で、ひとつのディメンション内の異なるメンバツリーの間でクロス集計を行いたい場合もあります。上記の例で、地域と業態は得意先ごとに定まるとするなら、それぞれを別のディメンションとするのではなく、単一の「得意先」ディメンションの中に地域別のメンバツリーと業態別のメンバツリーを設けて、この2つのメンバツリー間でクロス集計を行う方が適切かもしれません。そうすれば、データのキーに地域や業態を含めなくとも、単に店舗だけ含めておけば、集計はメンバツリーにもとづいて自動的に行うことができるからです。

しかしながら、一般の元帳ではこのようなクロス集計は行えません。冒頭に述べたように、クロス集計が行えるのはあくまで「異なるディメンション間」であるためです。

ビュー元帳は、このような「ひとつのディメンション内での複数メンバツリーを用いたクロス集計」を可能とするしくみです。

「ビュー元帳」とは

ビュー元帳とは、通常の元帳(基底元帳)に対する「別の見掛け」を提供する元帳です。

ビュー元帳自体はデータを保持しません。ビュー元帳への検索要求は、基底元帳への検索要求に変換されて処理されます。基底元帳のディメンション構成に含まれる各ディメンションを、ビュー元帳では同じ内容の複数のディメンションに対応付けることができます。例えば、基底元帳が「得意先」ディメンションを使用しているなら、ビュー元帳でも「得意先ディメンション」として使用することができますが、それに加えて、「得意先ディメンション」を、例えば「得意先 2」ディメンションにマッピングして使用する(ビュー元帳のディメンション構成に含める)ことができます。

ビュー元帳への検索要求においては、ひとつのディメンションを複数のディメンションとして扱い、それぞれにメンバを指定することができますが、これらのディメンションは、実体としては同一です。例えば、「得意先」ディメンションの中に地域別のメンバツリーと業態別のメンバツリーがあるとして、検索要求において、以下のようにメンバを指定したとします:

  • 得意先ディメンションについて、「東北計」を指定

  • 得意先 2 ディメンションについて、「食品専門店計」を指定

そうすると、検索結果として、東北における食品専門店である得意先の合計数値が得られます。すなわち、得意先ディメンション内の地域別メンバツリーと業態別メンバツリーを組み合わせてクロス集計を行ったことになります。

ビュー元帳に関する仕様

ビュー元帳に関する仕様・制約は、以下通りです。

  • ビュー元帳は参照専用です。ビュー元帳のセル値は、その基底元帳のセル値を更新することによって間接的に更新されます。その点を除き、データの入出力に関してビュー元帳は通常の元帳とまったく同様に扱うことができます。

  • ビュー元帳は必ずひとつの元帳(基底元帳)をもとに作成されます。ひとつの元帳を基底とするビュー元帳はいくつでも設けることができます。

  • 基底元帳で使用されていないディメンションを、ビュー元帳で追加的に使用することができます。この場合、そのディメンションに対しては、内容が同じで、かつ基底元帳で使用されているディメンションを、「基底ディメンション」として指定しなければなりません。上述の例においては、「得意先 2」が、ビュー元帳で追加されるディメンションであり、「得意先」ディメンションがその基底ディメンションです。なお、2つのディメンションの「内容が同じ」とは、いずれかがいずれかを借用しているか、あるいは、両者が同一のディメンションを借用していることを言います。

  • ビュー元帳のディメンション構成では、基底元帳のディメンション構成で「使用」されているディメンションを使用する必要はありません。一方、そうしたディメンションは、ビュー元帳で使用する少なくともひとつのディメンションの「基底ディメンション」としなければなりません。勿論、ディメンションを読み替える必要が特に無ければ、同じディメンションの基底とすることもできます。

  • 基底元帳が注記元帳であれば、ビュー元帳も注記元帳となります。基底元帳が注記元帳でなければ、ビュー元帳も注記元帳にはなりません。

  • ビュー元帳に、基底元帳のディメンション A を基底とするディメンション A1 と A2 がある場合、A1 についてメンバ X、A2 についてメンバ Y を指定して得られるビュー元帳のセルの値は、A 以外のディメンションのメンバ指定はすべて検索対象セルと同じで、ディメンション A についてメンバ X の子孫でありかつ Y の子孫であるようなリーフメンバに関する基底元帳のセルすべての値の合計となります。

  • フォームにより基底元帳のセル値を変更したとき、その変更は、ビュー元帳のセル値は直ちには反映されません。しかしながら、基底元帳のセル値変更をビュー元帳に反映した上で、さらにそのビュー元帳のセル値をもとに値を算出し、いずれかの元帳に書き込みたい状況が、時に生じます(配賦計算など)。そうした目的のために、フォームには「繰り返し反映機能」が用意されています。

  • 基底元帳に対するアクセスコントロールは、ビュー元帳に自動的には適用されません。例えば、基底元帳において、特定の得意先のデータには特定の業務責任単位しかアクセスできないよう、アクセス許可タイプが設定されていたとしても、その制限は、ビュー元帳には及びません。[1] 元帳マスクについても同様です。ビュー元帳へのアクセスも制御するよう適切にアクセス許可タイプ(及び元帳マスク)を記述する必要があります。


1. もちろん、元帳に係わりなく、特定の得意先のデータには特定の業務責任単位しかアクセスできないような領域定義式をアクセス許可タイプに記述することは可能です。ただしその場合も、ビュー元帳のセル値に対するアクセスが制限されるのは、アクセス許可タイプの「領域定義式」がまさにそのセルに適用された結果であって、基底元帳のセルに対するアクセスが制約されたからではありません。