*OMIT の受け渡し

呼び出されたプロシージャーが、*OMIT が渡されるかもしれないことを知ってい る場合には、プロトタイプ・パラメーターに *OMIT を渡すことができます。 言い換えると、プロトタイプの対応するパラメーター定義に、 キーワード OPTIONS(*OMIT) を指定すると、*OMIT を渡すことができます。 *OMIT を指定すると、コンパイラーが必要なコードを生成し、呼び出された プロシージャーに対し、パラメーターが省略されたことを指示します。
注: *OMIT は参照によって渡されるパラメーターにしか指定できません。

*OMIT が ILE RPG プロシージャーに渡されたかどうかを判別するには、%ADDR 組み込み関数を 使って問題のパラメーターのアドレスを検査します。 アドレスが *NULL の場合には、*OMIT が 渡されています。また CEETSTA (省略された引数の検査) バインド可能 API も 使用することができます (簡略な例については、図 3 を参照してください)。

次は *OMIT の簡単な使用法の例です。 この例では、操作記述子を分解するために、 プロシージャーが ILE バインド可能 API CEEDOD を呼び出します。CEEDOD API は 7 つのパラメーターを受け取ることを期待していますが、呼び出し元の 発呼側プロシージャーには 6 つのパラメーターしか定義されていません。 CEEDOD (およびほとんどの バインド可能 API) の最後のパラメーターは API がどのように終了したかを判別するのに使用できる フィードバック・コードです。 しかし、呼び出しプロシージャーは、このフィードバック・コードではなく、 例外を介して、エラー・メッセージを受け取るように設計されています。したがって、 プロシージャーは CEEDOD への呼び出し時に、フィードバック・コード のパラメーターが省略されたことを指示しなければなりません。

*OMIT の使用例については、サンプル・サービス・プログラムを参照してください。