Smart Viewでの計算スクリプト実行におけるランタイム代替変数

ランタイム代替変数(RTSV)は、Smart Viewで実行するために設計したEssbase計算スクリプトで使用できます。RTSVを使用すると、アクティブなグリッド・コンテキスト(POV)に応じて、計算のフォーカス・リージョンが動的になります。

Smart Viewでランタイム代替変数を含む計算スクリプトを使用するには、SET RUNTIMESUBVARS計算コマンドのランタイム代替変数宣言に<RTSV_HINT>タグを含める必要があります。さらに、<RTSV_HINT>タグには<svLaunch>タグを含める必要があります。通常、<svLaunch>タグには、Smart Viewで計算スクリプトを実行するためのメタデータを提供する追加のXMLタグが含まれています。

次の構文を使用して、Smart Viewで使用するランタイム代替変数定義を定義します:

SET RUNTIMESUBVARS
{
   rtsvName = POV
   <RTSV_HINT>
      <svLaunch>
         <description>rtsv_description</description>
         <type>member | string | number</type>
         <dimension>dimName</dimension>
         <choice>single | multiple</choice>
         <allowMissing>true | false</allowMissing>
      </svLaunch>
   </RTSV_HINT>
};

前述の定義では、ランタイム代替変数名はrtsvNameですが、任意の名前を使用できます。スプレッドシート・グリッドに存在する現在のデータ・スライスのみを計算するように指定するには、変数の値をPOVに設定する必要があります。

<RTSV_HINT>要素も変数宣言の一部である必要があります。その内容は次のとおりです:

  • <description>: Smart Viewユーザーがメンバー選択を理解するのに役立つ記述子
  • <type>: 変数がメンバー、文字列または数値用かどうかの指定
  • <allowMissing>: 欠落しているデータを含める場合はtrue、それ以外の場合はfalse
  • <dimension>: この変数が情報を取得するディメンションの名前
  • <choice>: 1つの選択のみがランタイム代替変数に渡される場合はsingle、それ以外の場合はmultiple

前述のXMLタグの詳細は、「XMLタグ・リファレンス—Smart Viewのランタイム代替変数を含む計算スクリプト」を参照してください。

Smart Viewで、ランタイム代替変数を含む計算スクリプトを「計算スクリプト」ダイアログ・ボックスで選択すると、SET RUNTIMESUBVARS計算コマンドでランタイム代替変数が定義されている方法に基づいて「実行時プロンプト」領域にフィールドが移入されます。定義されているとおりに計算スクリプトを実行するか、ランタイム・プロンプトを使用して、データ型に基づいて様々な変数情報を入力できます。

ノート:

Smart Viewでは、SET RUNTIMESUBVARSコマンドに<RTSV_HINT><svLaunch>...</svLaunch></RTSV_HINT>タグが含まれていない場合、ランタイム代替変数を含む計算スクリプトを実行できません。

例: POVに設定されたランタイム代替変数

ランタイム代替変数をSmart Viewのアクティブ・グリッド・コンテキスト(POV)に設定するには、ランタイム代替変数の値をPOVに設定し、データ型をmemberに設定する必要があります。

デフォルトでは、Smart Viewユーザーがランタイム・プロンプトで別のメンバーを指定しないかぎり、計算スクリプトでは実行時にPOVのアクティブ・メンバーが使用されます。

この例では、データベースに勘定科目、エンティティ、期間およびシナリオのディメンションがあると想定します。3つのランタイム代替変数が定義され(rtsvEntity、rtsvScenarioおよびrtsvPeriodという名前)、各変数の値はPOVに設定されています。ランタイム代替変数は、FIX文で&rtsvEntity、&rtsvScenarioおよび&rtsvPeriodとして参照されます。

SET RUNTIMESUBVARS {
   rtsvEntity = POV
      <RTSV_HINT>
         <svLaunch>
            <description>Entities to Copy</description>
            <type>member</type>
            <dimension>Entity</dimension>
            <allowMissing>false</allowMissing>
            <choice>multiple</choice>
         </svLaunch>
      </RTSV_HINT>;
   rtsvScenario = POV
      <RTSV_HINT>
         <svLaunch>
            <description>Scenarios to Copy</description>
            <type>member</type> 
            <allowMissing>false</allowMissing>
            <dimension>Scenario</dimension>
            <choice>multiple</choice>
         </svLaunch>
      </RTSV_HINT>;
   rtsvPeriod   = POV
      <RTSV_HINT>
         <svLaunch>
            <description>Period to Copy</description>
            <type>member</type>
            <allowMissing>false</allowMissing>
            <dimension>Period</dimension>
            <choice>single</choice>
         </svLaunch>
      </RTSV_HINT>;
}
FIX(&rtsvEntity, &rtsvScenario, &rtsvPeriod)
"Opening Balance" (
@PREV("Closing Balance");
)

変数宣言の下にはFIXブロックがあり、このブロックでは計算のフォーカス・リージョンが選択され、期間の開始残高を設定するコマンドが実行されます。ランタイム代替変数は、&varnameという構文を使用してFIXブロックに渡されます。したがって、計算のフォーカス・リージョンは、Smart ViewのPOVに応じて動的です。

ノート:

Essbaseジョブのインタフェース、MaxL execute calculation文またはAPI (REST API ジョブの実行エンドポイントなど)を使用する場合、POVに設定されたランタイム代替変数を含む計算スクリプトを実行できません。これらは現在のSmart Viewグリッド・コンテキストに依存するため、Smart Viewから実行する必要があります。

XMLタグ・リファレンス—Smart Viewのランタイム代替変数を含む計算スクリプト

Smart ViewのPOV/グリッド・コンテキストに基づいて実行するように設計されたランタイム代替変数を使用してEssbase計算スクリプトを設計する場合は、ここで説明するXMLタグを使用する必要があります。

  • <RTSV_HINT>

    Smart Viewで使用するランタイム代替変数を定義するための必須タグ。

  • <svLaunch>

    Smart Viewで使用するランタイム代替変数が定義されていることを示す必須タグ。

    このタグは、<description><type><dimension><choice>および<allowMissing>タグの親タグです。

  • <description>rtsv_description</description>

    rtsv_descriptionは、ランタイム代替変数を説明する文字列です。この文字列は計算で使用されません。

  • <type>value</type>

    有効なデータ型の値は次のとおりです。

    • メンバー—ランタイム代替変数値は、メンバー(単一メンバー名またはメンバー名のカンマ区切りリスト)またはPOVとして定義する必要があります。

      ノート:

      メンバー名は引用符で囲む必要があります。たとえば、"New York" (単一メンバー)または"New York","Florida" (メンバー名のカンマ区切りリスト)です。

      ランタイム代替変数値がPOVに設定されている場合、<type>値はメンバーである必要があります。<choice>タグも参照してください。

      EssbaseジョブまたはMaxLを使用して、POVに設定されたランタイム代替変数を含む計算スクリプトを実行することはできません。POVはスライスを決定するために現在のグリッド・コンテキストに依存するため、これらの計算スクリプトはSmart Viewから実行することを意図しています。

    • 文字列—ランタイム代替変数値は、単一メンバー名、メンバー名のカンマ区切りリスト(例: "New York","Florida")または日付として定義できます。

      文字列データ型を使用している場合、「メンバー選択」ダイアログ・ボックスは使用できません。したがって、Smart Viewユーザーは必ず正しい構文を使用する必要があります(メンバー名を引用符で囲む、複数のメンバー名をカンマで区切る、または日付の場合は、日付文字列の書式を計算スクリプトで定義された書式mm-dd-yyyyまたはdd-mm-yyyyと一致させる)。

    • 数値—ランタイム代替変数値は数値として定義する必要があります

  • <dimension>dimName</dimension>

    ディメンションの名前

    ノート:

    このXMLタグは、<type>値がメンバーである場合にのみサポートされます。

  • <choice>value</choice>

    有効な選択値は次のとおりです。

    • 単一:

      • グリッドまたはPOVに単一のメンバーがある場合、そのメンバーが使用されます。

      • ディメンションがPOVにある場合、アクティブ・メンバーが使用されます。

      • ディメンションがPOVにあり、複数のメンバーがある場合、エラーが発生します。

    • 複数—グリッドまたはPOV上のすべてのディメンション・メンバーが使用されます。

    ノート:

    このXMLタグは、<type>値がメンバーである場合にのみサポートされます。

  • <allowMissing>boolean</allowMissing>

    データベースにデータが存在しないデータ・セルを許容するか抑制するかを指定します。

    有効な値: trueおよびfalse。