代替変数の使用

代替変数Essbase計算スクリプトで、変更される可能性がある値を格納するために使用します。ランタイム代替変数は、同じスクリプトに対して異なるユーザーが異なる値を指定する必要がある場合に使用します。

たとえば、様々な計算スクリプト、式、フィルタ、レポート・スクリプトおよびMDXスクリプトのすべてが現在の月を参照する必要がある場合、キューブ・アーティファクトのライブラリ全体でおよそ30日間ごとに月を検索して置換することは望みません。かわりに、CurrMonthという名前の代替変数を定義し、その割当値を毎月適切な月に変更できます。変数を参照するすべてのキューブ・アーティファクトは、適切な月を参照することになります。

次に、現在の月を表す単純な代替変数の例を示します。

変数名: CurrMonth

値: Jan

代替変数の値は、その変数を含む計算スクリプトを実行するすべてのユーザーに適用されます。たとえば、CurrMonthの値がJanの場合、&CurrMonthを含むすべてのスクリプトで実行時にはJanが使用されます。代替変数のスコープは次のようにできます。

  • グローバル(サーバー上のすべてのアプリケーションおよびキューブ)
  • アプリケーション(アプリケーション内のすべてのキューブ)
  • キューブ(単一のキューブ)

特定のキューブに代替変数を定義するには:

  1. 「アプリケーション」ページでアプリケーションを開いて、データベース(キューブ)を開きます。
  2. 「カスタマイズ」「変数」「作成」の順にクリックします。
  3. 変数名と値を入力し、「保存」をクリックします 「変数」ダイアログ・ボックスの「保存」(チェック・マーク)アイコンのイメージ。
  1. Essbase Webインタフェースの「アプリケーション」ページで、アプリケーションを展開し、変更するキューブを表示します。
  2. キューブの右にある「アクション」メニューから、インスペクタを起動します。
  3. 「変数」タブを選択し、「追加」「追加」アイコンのイメージ。をクリックします。
  4. 変数名と値を入力し、「保存」「閉じる」の順にクリックします。

特定のアプリケーションに代替変数を定義するには:

  1. 「アプリケーション」ページで、アプリケーションを開きます。
  2. 「カスタマイズ」「変数」「作成」の順にクリックします。
  3. 変数名と値を入力し、「保存」をクリックします 「変数」ダイアログ・ボックスの「保存」(チェック・マーク)アイコンのイメージ。
  1. アプリケーション・ページで、アプリケーションの右にある「アクション」メニューから、インスペクタを起動します。
  2. 「変数」タブを選択し、「追加」「追加」アイコンのイメージ。をクリックします。
  3. 変数名と値を入力し、「保存」「閉じる」の順にクリックします。

代替変数をグローバルに定義するには:

  1. アプリケーション・ページで、「コンソール」をクリックします。
  2. 「変数」タブをクリックし、「作成」をクリックします。
  3. 変数名と値を入力し、「保存」をクリックします 「変数」ダイアログ・ボックスの「保存」(チェック・マーク)アイコンのイメージ。
  1. Essbaseで、「コンソール」をクリックします
  2. 「変数」タブを選択し、「追加」をクリックします。
  3. 変数名と値を入力し、「保存」をクリックします 「変数」ダイアログ・ボックスの「保存」(チェック・マーク)アイコンのイメージ。

代替変数を定義した後は、計算スクリプト、式、フィルタ、MDXスクリプト、ロード・ルールおよびレポートで使用できます。変数を参照するには、変数の前に&記号を付加します。

次に、代替変数を参照する計算スクリプトの例を示します。

FIX(&CurrMonth)
   CALC DIM (Measures, Product);
ENDFIX

次に、代替変数を参照する式の例を示します。

@ISMBR(&CurrMonth)

ランタイム代替変数を使用すると、計算スクリプト、MaxLスクリプトまたはMDX問合せなどのランタイム・アクションのコンテキストで、変数とその値を宣言できます。ランタイム代替変数は、数値を保持するか、またはメンバー名を参照するように割り当てることができます。ユーザーが入力値を変更しない場合にデフォルト値を割り当てることができます。計算スクリプトの場合は、Smart Viewグリッドに表示されるディメンションのメンバーから、実行時に変数値を移入できます。実行時に値を移入する計算スクリプトの場合、グリッドのコンテキスト外には変数の定義がないため、Smart Viewから計算スクリプトを起動する必要があります。

ランタイム代替変数は、キー値ペアを使用して計算スクリプトに定義できます。

SET RUNTIMESUBVARS
{
   myMarket = "New York";
   salesNum = 100;
   pointD = "Actual"->"Final";
}

あるいは、POVに従って値が動的に変化するランタイム代替変数を定義するには、POVに定義を割り当てて、XML構文を使用してSmart Viewのコンテキスト・プロンプトを有効にします。

詳細は、次の章を参照してください。