マクロからの他のマクロの呼出し

マクロから他のマクロを呼び出すには、次のようなマクロ定義を作成します。この例では、#make_dateマクロが#assign_dateマクロ内にネストされ、#assign_dateの実行時に呼び出されます。

ネストされたマクロは、ベース・マクロに定義された同じパラメータの全部またはサブセットを定義している必要があります。つまり、ベース・マクロの呼出し時の入力値が両方のマクロのパラメータに解決される必要があります。

次では、#assign_dateを定義しています。

MACRO #assign_date
PARAMS (#target_col, #year, #month, #day)
BEGIN
#target_col = #make_date (#year, #month, #day)
END;

次では、#make_dateを定義しています。このマクロでは、2桁の入力日付の前に世紀値(19または20)を付ける必要があるかどうかを最初に判別した後、4桁の年を含む日付書式を作成します。#make_datePARAMS文には、#assign_dateマクロ内のパラメータのサブセットが含まれています。

MACRO #make_date
PARAMS (#year, #month, #day)
BEGIN
@DATE ('YYYY-MM-DD', 'CC', @IF (#year < 50, 20, 19), 'YY', #year, 'MM', #month, 'DD', #day)
END;

次の構文は#assign_dateを呼び出します。

#assign_date (COL1, YEAR, MONTH, DAY)

前の入力値および埋込み#make_dateマクロを想定すると、マクロは次のように展開されます。

COL1 = @DATE ('YYYY-MM-DD', 'CC', @IF (YEAR < 50, 20, 19),'YY', YEAR, 'MM', MONTH, 'DD', DAY)