機械翻訳について

計算スクリプト構文の理解

Essbaseには、データベースの計算方法を制御するために使用できる柔軟なコマンド・セットが用意されています。 コマンドおよび式から計算スクリプトを作成できます。

計算スクリプトを作成する場合は、次のルールを適用する必要があります:

  • 各式または計算スクリプト・コマンドはセミコロン(;)で終了します。 例:

    例 1

    CALC DIM(Product, Measures);

    例 2

    DATACOPY Plan TO Revised_Plan;

    例 3

    "Market Share" = Sales % Sales -> Market;

    例 4

    IF (Sales <> #MISSING)
       Commission = Sales * .9;
       ELSE
          Commission = #MISSING;
    ENDIF;

    次のコマンドはセミコロンで終了する必要はありません:

    IF
    ENDIF
    ELSE
    ELSIF
    FIX
    ENDFIX
    EXCLUDE
    ENDEXCLUDE
    LOOP
    ENDLOOP

    ノート:

    必須ではありませんが、Oracleでは、各ENDIF文をセミコロンで終了することをお薦めします。

  • メンバー名が次のいずれかの条件を満たす場合は、メンバー名を二重引用符("")で囲みます:

  • IF文または相互依存の式を使用している場合は、式をカッコで囲み、指定したメンバーに関連付けます。

    たとえば、次の式は、データベース・アウトラインのCommissionメンバーに関連付けられています:

    Commission
    (IF(Sales < 100)
       Commission = 0;
    ENDIF;)
  • 各IF文をENDIF文で終了します。

    たとえば、前述の式には単純なIF...ENDIF文が含まれています。

  • 別のIF文内にネストされているIF文を使用している場合は、各IFをENDIF文で終了します。

    例:

    "Opening Inventory"
    (IF (@ISMBR(Budget))
       IF (@ISMBR(Jan))
          "Opening Inventory" = Jan;
       ELSE 
          "Opening Inventory" = @PRIOR("Ending Inventory");
       ENDIF;
    ENDIF;)
  • ELSEまたはELSEIF文をENDIF文で終了する必要はありません。

    例:

    Marketing
    (IF (@ISMBR(@DESCENDANTS(West)) OR @ISMBR(@DESCENDANTS(East)))
       Marketing = Marketing * 1.5;
    ELSEIF(@ISMBR(@DESCENDANTS(South)))
       Marketing = Marketing * .9;
    ELSE 
       Marketing = Marketing * 1.1;
    ENDIF;)

    ノート:

    FormulaでELSEIF (1語)ではなくELSE IF (空白あり)を使用する場合は、IF文にENDIFを指定する必要があります。

  • 各FIX文をENDFIX文で終了します。

    例:

    FIX(Budget,@DESCENDANTS(East))
       CALC DIM(Year, Measures, Product);
    ENDFIX
  • 各EXCLUDE文はENDEXCLUDE文で終了します。

計算スクリプトを記述する場合は、「計算スクリプト・エディタ」構文チェッカを使用して構文を検証します。 「構文のチェック」を参照してください。

計算スクリプトへのコメントの追加

計算スクリプトに注釈を付けるためのコメントを含めることができます。 計算スクリプトの実行時にコメントは無視されます。

コメントを含めるには、コメントを/*で開始し、コメントを*/で終了します。 例:

/* This calculation script comment
   spans two lines. */

構文のチェック

Essbaseには、計算スクリプトの構文エラー(入力ミスのある関数名など)にフラグを付ける構文チェッカが含まれています。

構文エラーが見つからない場合、Essbaseは構文チェックが成功したことを示します。

構文エラーが見つかった場合、Essbaseは構文チェックが失敗したことを示し、一度に1つのエラーを表示します。 通常、エラー・メッセージには、エラーが発生した行番号と簡単な説明が含まれます。

「計算スクリプトの作成」を参照

ノート:

構文チェッカはセマンティック・エラーを判別できません。セマンティック・エラーは、計算スクリプトが期待どおりに動作しない場合に発生します。 セマンティック・エラーを検出するには、計算を実行し、結果が期待どおりであることを確認します。 「計算結果の確認」を参照してください。