集約ストレージ・アウトラインに対する式の開発

式により、Essbaseアウトラインでのメンバー間の関係を計算します。集約ストレージ(ASO)の式は、ブロック・ストレージの式とは異なります。MDXで数値式として集約ストレージ(ASO)式を記述し、それらをキューブ・アウトラインに適用します。それらは、データ取得時に動的に計算されます。

ASOの式とBSOの式の相違点

ブロック・ストレージ(BSO)のアウトラインで式を使用し慣れている場合は、集約ストレージ(ASO)での式との違いに注意してください。

  • Essbaseには、ブロック・ストレージ・アウトラインに対する式を記述するためのネイティブ計算言語が用意されています。集約ストレージ・アウトラインの式を記述するには、MDX (マルチディメンショナル式)言語を使用します。

  • アウトラインでメンバーに直接式を適用します。ブロック・ストレージ・キューブの場合は、式を計算スクリプトに配置できます。集約ストレージ・キューブの場合は、式を計算スクリプトに配置できません。

ASOキューブの場合の式計算

Essbaseで集約ストレージ・アウトライン内の式が計算されるのは、データが取得されるときのみです。計算順序が計算結果に影響する場合があります。集約ストレージ・アウトライン内の複数のディメンションに対するMDX式を使用するときは、常に、各メンバーまたはディメンションに解決順序を設定することをお薦めします。「ASOキューブでの計算順序と解決順序」を参照してください。

ノート:

集約ストレージ計算を設計するときは、MDX式がある集約ストレージ・メンバーが動的に計算されることを考慮してください。動的に計算されるメンバーには、問い合されるまでは#MISSINGの値が含まれます。

MDX式の使用

MDX式は、常にMDX数値式である必要があります。MDXの数値式とは、次のアクションのいずれかを実行する関数、演算子およびメンバー名の任意の組合せです。

  • 値の計算

  • 条件のテスト

  • 算術演算の実行

数値式はセット式とは異なります。セット式は問合せ軸で使用され、メンバーおよびメンバーの組合せを記述します。数値式は値を指定します。

数値式は計算済メンバーを構築するための問合せで使用され、計算済メンバーは問合せのWITHセクションに分析目的で作成される(ただし、アウトライン内には存在しない)論理メンバーです。

次の問合せでは、計算済メンバーを定義し、数値式を使用して値を設定しています。

WITH MEMBER
 [Measures].[Prod Count]
AS
 'Count (
    Crossjoin (
     {[Units]},
     {[Products].children}
    )
  )', SOLVE_ORDER=1
SELECT
 {[Geography].children}
ON COLUMNS,
 {
  Crossjoin (
     {[Units]},
     {[Products].children}
    ),
   ([Measures].[Prod Count], [Products])
 }
ON ROWS
FROM
 ASOsamp.Sample

サンプル問合せでは、次のように、MeasuresディメンションにWITH句で計算済メンバーProduct Countを定義しています。

WITH MEMBER
 [Measures].[Prod Count]

数値式はWITH句の後に置かれ、一重引用符で囲まれています。サンプル問合せでは、数値式は次のように指定されています。

'Count ( 
    Crossjoin (
     {[Units]},
     {[Products].children}
    )
  )'

SOLVE_ORDERプロパティでは、メンバーと式が評価される順序を指定します。「ASOキューブでの計算順序と解決順序」を参照してください。

ノート:

例のような数値式を構築するために使用する構文ルールの詳細は、CountCrossJoinおよびChildren関数のドキュメントを参照してください。

数値式をMDX式として使用し、既存のアウトライン・メンバーの値を計算することもできます。

その場合は、例のような問合せを作成するのではなく、Prod Countというアウトライン・メンバーをMeasuresディメンションに作成し、サンプル問合せで仮説のProd Countを計算したのと同じ方法でアウトラインで計算します。

式を持つ計算済メンバーを作成するには:

  1. メンバーを作成します。

  2. MDX式をメンバーに添付します。

    例のようにProd Countメンバーを作成したと想定して、次の数式を使用します。これは、例の問合せで計算済メンバーの作成に使用した数値式と同じです。

    Count(Crossjoin ( {[Units]}, {[Products].children}))
  3. アウトラインを確認して、式を確認します。

    集約ストレージ・キューブからデータを取得するときに、その式がメンバー値の計算に使用されます。

    式の中で代替変数を使用できます。たとえば、「EstimatedPercent」という代替変数を定義し、代替変数値として様々なパーセンテージを指定できます。「情報を変更するための変数の実装」を参照してください。

アウトライン内のメンバーに式を適用する前に、計算済メンバーを含むMDX問合せを記述できます。必要な計算済メンバーの結果を戻すMDX問合せの記述が可能になったら、数値式のロジックをアウトライン・メンバーに適用して、式の検証とテストを実行できます。「MDX問合せの記述」を参照してください。