カスタム定義マクロの入力パラメータ

マクロを作成するときに、マクロに渡される引数の数と種類を定義できます。マクロの引数セット(署名とも呼ばれます)の指定はオプションですが、指定するとマクロが使いやすくなり、使用方法エラーを防ぐことができます。

引数セットは、Create Macro MaxL文を使用してマクロを作成するときに、マクロ名の一部として指定されます。次のマクロ名では、引数セットはカッコで囲まれます。

@SUMRANGE(single, group)

マクロ署名は、このマクロにsingle (1つの入力パラメータを表す)とgroup (入力パラメータのリストを表す)の2つの引数が必要であることを示します。これらのマクロ引数は、特定のデータ型(boolean、double、stringなど)を表すものではありません。かわりに、マクロが受け入れる引数の個数のみを示します。

マクロ名の一部として、カンマ区切りリストに引数を指定します。引数は、次のキーワードを使用して指定できます:

表3-35 引数で使用するキーワード

引数 説明
SINGLE 単一の引数
GROUP 引数のリスト。GROUPの後の引数はすべて無視されます。
OPTIONAL 必須でない単一の引数
OPTIONAL_GROUP 必須でない引数のリスト。OPTIONAL_GROUPの後の引数はすべて無視されます。
ANY 引数のチェックはありません。ANYの後の引数はすべて無視されます。

マクロでは、次の引数のセットが有効です:

@SUMRANGE(Profit, @CHILDREN(East))
@SUMRANGE(Profit, "New York", "New Jersey", Connecticut)
@SUMRANGE(Sales, @DESCENDANTS(Product))

次の表は、マクロ・プロセッサが、様々な入力パラメータを指定した様々な署名を持つマクロの引数を解釈する方法の例を示しています。サンプル・マクロの定義は次のとおりです。

create macro SUM3(argument1, argument2, argument3) as '(@@1 + @@2 + @@3)';

表3-36 マクロ入力と結果の例

SUM3(signature)の署名付きマクロ SUM3(X,Y)の入力が与えられたときの結果 SUM3(X,Y,Z)の入力が与えられたときの結果 SUM3(X,Y,Z,T)の入力が与えられたときの結果

SUM3(SINGLE, SINGLE, SINGLE)

エラー(誤った個数の引数)

X+Y+Z

エラー(誤った個数の引数)

SUM3(SINGLE, SINGLE, GROUP)

エラー(誤った個数の引数)

X+Y+Z

X+Y+@LIST(Z,T)

SUM3(SINGLE, SINGLE, OPTIONAL_GROUP)

X+Y+@_NULL

X+Y+Z

X+Y+@LIST(Z,T)

SUM3(SINGLE, SINGLE, OPTIONAL)

X+Y+@_NULL

X+Y+Z

エラー(誤った個数の引数)

SUM3(SINGLE, SINGLE, ANY)

X+Y+@_NULL

X+Y+Z

X+Y+Z

SUM3(SINGLE, ANY)

X+Y+

X+Y+Z

X+Y+Z

SUM3(SINGLE, GROUP)

X+Y+

X+@LIST(Y,Z)+

X+@LIST(Y,Z,T)+

SUM3(ANY)

X+Y+

X+Y+Z

X+Y+Z

Essbase計算機言語の引数は、次のデータ型のいずれかを表すことができます。

表3-37 引数のデータ型

データ型 説明
数値 単精度、倍精度、浮動小数点型の数値。特別な値、#MISSING、またはこれらの数値の配列を持つことができます。
ブール値 使用可能な値であるTRUE、FALSE、#MISSINGを持つ単一の3値変数、またはこれらの変数の配列
メンバー 単一のデータベース・アウトライン・メンバー、クロス・メンバーの組合せ、またはメンバーの配列
文字列 文字列変数型、またはこれらの文字列の配列

マクロを開発するときは、計算のエラーを回避するために、マクロに渡すことができるデータ型を考慮する必要があります。