機械翻訳について

FormulaからのFormula呼出しの概要

Formulaは別のFormulaを呼び出せます。 これにより、モジュール方式のFormula編成が可能になります。 被呼出し側Formula名と、必要なFormula入力名または出力名はTEXT値として指定します。 名前は大文字小文字が区別されません。

次のいずれの方法でもFormulaを呼び出せます。

  • 単一の呼出しを使用

  • 別個の呼出しを使用

Formulaを作成する際には、次の点を考慮してください。

  • 被呼出し側Formulaの検証

  • コンテキストの引き渡し

  • 次の任意の方法を使用してFormulaを呼び出します。

    • 別個の呼出しを使用

    • 単一の内包型呼出しを使用

  • メソッドを比較するためのユース・ケース

被呼出し側Formulaの検証

Formulaを実行すると、被呼出し側Formulaが実行可能であり、指定された入力および出力のデータ型が正しい型であるかどうかが検証されます。 IS_EXECUTABLE呼出しを使用すると、指定の名前の実行可能Formulaが存在するかどうかを確認できます。 Formulaはコンパイルして、指定された国別仕様データ・グループで使用できるようにする必要があります。 また、呼出し側Formulaが実行される有効日に被呼出し側Formulaが有効である必要があります。 また、給与コードにより、Formulaタイプの組合せに基づいてさらなる制限が課せられます。

コンテキストの引き渡し

コンテキスト値は呼出し側Formulaから継承されます。 ネストしたFormula呼出し内でコンテキスト値を明示的に設定または解除できます。

Formula呼出しの代替方法

次のいずれの方法でも、別のFormula内からFormulaを呼び出せます。

  • 別個の呼出しを使用する

  • 単一の自己包含型の呼出しを使用する

別個の呼出しを使用

次の3つの別個の呼出しを使用できます。

  1. 入力を設定します。

    Formula呼出しで明示的に設定する必要のあるFormula入力およびコンテキストには、SET_INPUT呼出しを使用します。 Formula入力およびコンテキストをすべて指定する必要はありません。 コンテキスト値を明示的に解除するには、SET_INPUT呼出しをオプションの値パラメータを指定せずに使用します。 SET_INPUT呼出しで指定された余分な入力は無視されます。

  2. Formulaを呼び出します。

    EXECUTE呼出しを使用してFormulaを呼び出します。

  3. Formula出力を取得します。

    GET_OUTPUT呼出しを1回または複数回使用して、最後のFormula呼出しからの出力を取出します。

Formulaを実行すると、次のシナリオで実行エラーが返されます。

  • 被呼出し側Formulaが実行可能ではありません。

  • 被呼出し側Formulaがすでに実行されている場合

  • 入力変数(SET_INPUTで指定)または出力変数(GET_OUTPUTで指定)のデータ型が、被呼出し側Formula内の実際のデータ型と一致しない場合

この表は、別個の呼出しを使用してFormulaを呼び出すメソッドを要約したものです。

方法

使用目的

SET_INPUT(input [,value])

入力またはコンテキストの値を、値パラメータで指定された値に設定します。 valueパラメータは省略可能です。 valueパラメータを指定すると、入力はこの値に設定されます。 valueパラメータを指定しないと、入力またはコンテキストは未設定でFormulaに渡されます。 valueのデータ型は入力で予期されているデータ型です。

SET_INPUT呼出しでコンテキストを使用する場合、そのvalueは呼出し側Formulaのvalueに設定されます。

EXECUTE(formula)

被呼出し側formulaを実行します。

GET_OUTPUT(output, default-value)

Formulaの呼出し後に出力パラメータの値を取得します。 'output'という名前のFormula出力がない、または設定されていない場合、デフォルト値パラメータで指定された値が返されます。 デフォルト値のデータ型は出力で予期されているデータ型です。

ノート: SET_INPUTを使用して設定したFormula入力は、EXECUTEまたはGET_OUTPUT呼出しが実行されるまで維持されます。 被呼出し側Formulaからの出力値は、SET_INPUTまたは新しいEXECUTE呼出しが実行されるまで維持されます。 呼出し側Formulaが存在する場合、保存されている入力または出力値がプロセスによって削除されます。

単一の内包型呼出しを使用

次に、単一の自己内包型呼出しの動作を示します。

  • 以前のSET_INPUT呼出しの値を使用しないように、開始時に入力値をクリアします。

  • 後続のGET_OUTPUT呼出しがデフォルト値のみを返すように、最後に出力を破棄します。

CALL_FORMULAメソッドの使用方法を次に示します。

CALL_FORMULA(formula, [set statement, get statement])

SET文はSET_INPUT呼出しです。 GET文は、GET_OUTPUT呼出しの結果を、呼出し側Formula内の変数に割り当てます。 呼出しは次の順序で実行されます。

  1. SET_INPUT呼出し

  2. EXECUTE呼出し

  3. GET_OUTPUT代入

SET文とGET文が点在する場合でも、コンパイラは常にこの順序で実行するコードを生成します。