代替変数の使用
代替変数はEssbase計算スクリプトで、変更される可能性がある値を格納するために使用します。ランタイム代替変数は、同じスクリプトに対して異なるユーザーが異なる値を指定する必要がある場合に使用します。
たとえば、様々な計算スクリプト、式、フィルタ、レポート・スクリプトおよびMDXスクリプトのすべてが現在の月を参照する必要がある場合、キューブ・アーティファクトのライブラリ全体でおよそ30日間ごとに月を検索して置換することは望みません。かわりに、CurrMonthという名前の代替変数を定義し、その割当値を毎月適切な月に変更できます。変数を参照するすべてのキューブ・アーティファクトは、適切な月を参照することになります。
次に、現在の月を表す単純な代替変数の例を示します。
変数名: CurrMonth
値: Jan
代替変数の値は、その変数を含む計算スクリプトを実行するすべてのユーザーに適用されます。たとえば、CurrMonthの値がJanの場合、&CurrMonthを含むすべてのスクリプトで実行時にはJanが使用されます。代替変数のスコープは次のようにできます。
- グローバル(サーバー上のすべてのアプリケーションおよびキューブ)
- アプリケーション(アプリケーション内のすべてのキューブ)
- キューブ(単一のキューブ)
特定のキューブの代替変数を定義または更新するには、
- 「アプリケーション」ページでアプリケーションを開いて、データベース(キューブ)を開きます。
- 「カスタマイズ」をクリックし、「変数」をクリックします。
- 新しい変数を作成するには、「作成」をクリックして変数名と値を入力し、「保存」
をクリックします。
- 既存の変数の値を編集する場合は、値をダブルクリック(または「編集」をクリック)し、更新された値を入力して[Enter]を押します(または「保存」をクリックします)。
- Essbase Webインタフェースの「アプリケーション」ページで、アプリケーションを展開し、変更するキューブを表示します。
- キューブの右にある「アクション」メニューから、インスペクタを起動します。
- 「変数」タブを選択します。
- 新しい変数を作成するには、「追加」
をクリックし、変数名と値を入力し、「保存」をクリックします。
- 既存の変数の値を編集する場合は、「値」フィールドをダブルクリックし、更新した値を入力して[Enter]を押します。
- 「閉じる」をクリックします。
特定のアプリケーションの代替変数を定義または更新するには、
- 「アプリケーション」ページで、アプリケーションを開きます。
- 「カスタマイズ」をクリックし、「変数」をクリックします。
- 新しい変数を作成するには、「作成」をクリックして変数名と値を入力し、「保存」
をクリックします。
- 既存の変数の値を編集する場合は、値をダブルクリック(または「編集」をクリック)し、更新された値を入力して[Enter]を押します(または「保存」をクリックします)。
- アプリケーション・ページで、アプリケーションの右にある「アクション」メニューから、インスペクタを起動します。
- 「変数」タブを選択します。
- 新しい変数を作成するには、「追加」
をクリックし、変数名と値を入力し、「保存」をクリックします。
- 既存の変数の値を編集する場合は、「値」フィールドをダブルクリックし、更新した値を入力して[Enter]を押します。
- 「閉じる」をクリックします。
代替変数をグローバルに定義または更新するには、
- アプリケーション・ページで、「コンソール」をクリックします。
- 「変数」タイルをクリックします。
- 新しい変数を作成するには、「作成」をクリックして変数名と値を入力し、「保存」
をクリックします。
- 既存の変数の値を編集する場合は、値をダブルクリック(または「編集」をクリック)し、更新された値を入力して[Enter]を押します(または「保存」をクリックします)。
- Essbase Webインタフェースで、「コンソール」をクリックします。
- 「変数」タブをクリックします。
- 新しい変数を作成するには、「追加」をクリックし、変数名と値を入力し、「保存」をクリックします。
- 既存の変数の値を編集する場合は、「値」フィールドをダブルクリックし、更新した値を入力して[Enter]を押します。
代替変数を定義した後は、計算スクリプト、式、フィルタ、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のコンテキスト・プロンプトを有効にします。
詳細は、次の章を参照してください。
- 変更される情報のための変数の実装
- Essbaseにおける計算スクリプト実行でのランタイム代替変数の使用およびSmart Viewにおける計算スクリプト実行でのランタイム代替変数の使用
- SET RUNTIMESUBVARS計算コマンド
- ギャラリ・テンプレートのSample_Basic_RTSV (「ファイル」
> 「ギャラリ」 > テクニカル > 「計算」
)。