FormulaからのFormula呼出しの例
次の例を使用して、次の方法で別のFormulaからFormulaを呼び出す方法を理解しましょう。
-
一連の別個の呼出し
-
単一の自己内包型呼出し
この例には2つのバージョンの賃金Formulaと、2つの方法をいくつかのユース・ケースで比較した表が含まれています。
最初の2つの例は異なるバージョンの賃金Formulaを示しています。 次の点は、両方の例に当てはまります。
-
FormulaでRATE_FORMULAを呼び出して、HOURLY_RATEの値を取得します。
-
RATE_FORMULAはUNITにテキストを入力します。
-
Formula呼出しがUNIT入力を'Hourly'に設定します。
-
RATE_FORMULAがレートをRATEという名前の出力変数に返します。
-
RATE_FORMULAがRATEを返さない場合、GET_OUTPUT呼出しが0.00を返します。
別個の呼出しを使用する賃金Formula
この例は、別個の呼出しを使用してFormulaを呼び出す方法を示しています。
SET_INPUT('UNIT', 'Hourly')
EXECUTE('RATE_FORMULA')
HOURLY_RATE = GET_OUTPUT('RATE',0.0)
WAGE = HOURS_WORKED * HOURLY_RATE
RETURN WAGE
自己内包型の呼出しを使用する賃金Formula
この例は、自己内包型呼出しを使用してFormulaを呼び出す方法を示しています。
CALL_FORMULA
('RATE_FORMULA','Hourly' > 'UNIT'
/* SET_INPUT('UNIT', 'Hourly') */
,HOURLY_RATE < 'RATE' DEFAULT 0.0
/* HOURLY_RATE = GET_OUTPUT('RATE',0.0) */
)
WAGE = HOURS_WORKED * HOURLY_RATE
RETURN RATE
呼出し方法を比較するためのサンプル式
次に、2つの方法でサンプル式を使用して実行できる操作を示します。
-
Formulaを呼び出す
-
入力値とコンテキスト値を設定する
-
コンテキスト値の設定を解除する
-
出力値を変数または配列変数に取り込む
-
デフォルトの出力値を提供する
SET_INPUTまたは>文は、コール元の式に同じ名前の式入力またはコンテキストがない場合には影響しません。
この表は、サンプル式を使用して2つの方法を比較する、いくつかのユース・ケースを示しています。
ユース・ケース |
別個の呼出しを使用 |
自己内包型の呼出しを使用する |
---|---|---|
Formula |
|
|
被呼出し側Formula内で入力値を設定し、EXTRA_HOURSを小数点2位までの概数にして、被呼出し側Formula内の入力OVERTIMEを設定します。 |
|
|
|
SET_INPUTS文は必須ではありませんが、次を使用できます。
|
SET文は必須ではありませんが、次を使用できます。
|
被呼出し側Formulaからコンテキスト値を継承します。 たとえば、呼出し側Formulaと被呼出し側Formulaの両方でAREA1コンテキストがサポートされているとします。 被呼出し側Formulaは呼出し側FormulaからAREA1コンテキスト値を継承します。 |
この実現に文は不要です。 |
この実現に文は不要です。 |
被呼出し側Formula内でコンテキスト値を設定します。被呼出し側FormulaでAREA1コンテキストをサポートし、被呼出し側Formula内でAREA1を'London'に設定する必要があります。 |
|
|
コンテキスト値を設定しないでFormulaを呼び出します。被呼出し側FormulaでAREA1コンテキストをサポートし、被呼出し側FormulaでAREA1が設定されないようにします。 |
|
|
被呼出し側FormulaからのFormula出力を取得します。 BONUS_RATE出力値をRATE変数に取り込みます。BONUS_RATE出力が存在しない、または設定されていない場合はデフォルト値0.0を使用します。 |
|
|
被呼出し側FormulaからのFormula出力を配列に取り込みます。 BONUS_RATE出力値をRATES配列変数の索引位置'BONUS'に取り込みます。 BONUS_RATE出力が存在しない、または設定されていない場合はデフォルト値0.0を使用します。 |
|
|