@ENUMVALUE

Essbaseの@ENUMVALUE計算関数は、テキスト・リストのテキスト値の内部数値を返します。

構文

@ENUMVALUE ([mbrName,]enum_string)

パラメータ

mbrName

オプション。すべての有効な単一メンバー名、または単一メンバーを返す関数。@ENUMVALUEを最初の引数として指定した場合、そのメンバーに関連付けられたテキスト・リストをチェックし、2番目の引数で指定した文字列の数値を返します。

enum_string

mbrNameを最初の引数として指定した場合、これは、そのテキスト・リスト内で表されるテキスト文字列の1つのchar_string_literalです。

mbrNameを最初の引数として指定しない場合、これは、text_list_name, char_string_literalの形式の文字列です。ここで、引数は次のとおりです。

  • text_list_nameは、テキスト・リスト、またはテキスト・リストに関連付けられているメンバーの名前です。

  • char_string_literalは、テキスト・リストに表されるテキスト値の1つです。

次の例は、「すべてのファイル」>「ギャラリー」>「アプリケーション」>「施設評価」のファイル・カタログからダウンロードできる施設評価キューブに基づいています。キューブには、次のマッピングを持つResponseValuesという名前のテキスト・リストが含まれています: "Perfect" = 1、"Very Nice" = 2、"Nice" = 3、"Good some of the times" = 4、"No Opinion" = 5。

例1a: メンバー式での@ENUMVALUEの使用

次の式の例の意味は次のとおりです: 現在の「Answer」が「No Opinion」の場合、「USA」の地理内のすべての「Office」に対するすべての「Answer」について、「Answer」を「Good some of the times」に変更します。

FIX (@IDESCENDANTS("USA"))
"Office" (
    IF ("Answer" == @ENUMVALUE("ResponseValues", "No Opinion"))
        "Answer" = @ENUMVALUE("ResponseValues", "Good some of the times");
    ENDIF
);
ENDFIX

例1b: メンバー式でのテキスト・リストの数値の使用

次の式の例は、例1aの式と同じことを行いますが、この使用例はお薦めしません。@ENUMVALUEを使用してテキスト・リストから値を検索すると、エラーが発生しにくくなります。次の例では、代入文によって範囲外の応答値(ResponseValuesテキスト・リスト・オブジェクトにマップされていない値)になる場合でも、計算スクリプトによって検証が行われます。

FIX (@IDESCENDANTS("USA"))
"Office" (
    IF ("Answer" == 5)
        "Answer" = 4;
    ENDIF
);
ENDFIX