@NAME
Essbaseの@NAME計算関数は、囲まれた文字列、あるいはメンバー名またはディメンション名のリストを、文字列のリストとして別の関数に渡します。
構文
@NAME (mbrName [,UNIQUE])
パラメータ
- mbrName
-
メンバー名、ディメンション名、または文字列のリスト。
- UNIQUE
-
mbrNameが重複した名前の場合、mbrNameの一意のメンバー名を(ショートカット修飾名形式を使用)返すように@NAMEに指示します。mbrNameが重複名ではない場合、または重複メンバー名が有効になっていない場合には、UNIQUEは無視され、メンバー名のみが返されます。次の考慮事項があります。
-
Essbaseは、関数内の文字列をサポートしていません。文字列を値または値の配列として扱います。@NAMEは文字列を処理します。
-
一意のメンバー名に使用されるショートカット修飾名の形式の詳細は、重複メンバー・アウトラインの作成と操作を参照してください。
-
例
例1
次の例は、Sample Basicデータベースに基づいています。次の表から価格を取得するには、ユーザー定義関数を使用します。ユーザー定義関数(J_GetPrice)は、時間と製品名の2つの文字列パラメータを受け取り、各製品の価格を返します。
表3-30 Sample Basicデータベースの価格データ
MonthName | ProductId | Price |
---|---|---|
Jan | 100-10 | 1.90 |
Feb | 100-10 | 1.95 |
Mar | 100-10 | 1.98 |
Jan | 100-20 | 1.95 |
Feb | 100-20 | 2.00 |
Mar | 100-20 | 2.05 |
Price = @J_GetPrice(@NAME(@CURRMBR(Product)),@NAME(@CURRMBR(Year)));
次のレポートは、前述の例を示しています。
Price Actual Market
Jan Feb Mar
=== === ===
100-10 1.90 1.95 1.98
100-20 1.95 2.00 2.05
例2
次の例は、Sample Basicデータベースに基づいています。
"Profit Per Ounce" = Profit/@ATTRIBUTEVAL(@NAME(Ounces));
@NAME関数は、文字列"Ounces"を処理してから@ATTRIBUTEVALに渡します。この例では、次のレポートが作成されます:
Actual Year West
Profit Profit Per Ounce
======== ================
Cola 4593 382.75
例3
次の例では、重複メンバー名が有効になっているアウトラインを想定し、MarketディメンションにNew Yorkという名前の2つのメンバーがあります。
![重複メンバーのアウトラインからの階層に、[State].[New York]と[City].[New York]の各重複メンバーが表示されています。 重複メンバーのアウトラインからの階層に、[State].[New York]と[City].[New York]の各重複メンバーが表示されています。](img/v9esb_nonuex.gif)
New Yorkメンバーの修飾メンバー名は、[State].[New York]および[City].[New York]です。
次の例では、現在の計算コンテキストから、修飾されたメンバー名を取得します。
@MEMBER(@NAME(@CURRMBR("Market"), UNIQUE))
計算中のMarketの現在のメンバーがNew York Stateのメンバーである場合、修飾されたメンバー名[State].[New York]は、@MEMBERに渡され、New York Cityメンバーと有効に区別されます。