パラメーターの省略
パラメーターを省略するもう 1 つの方法は、単に呼び出しでこれを省略するという やり方です。呼び出されたプロシージャーはこれを予定している必要があり、このことは、 そのプロシージャーがプロトタイプで指示されなければならないことを意味します。 プロトタイプのパラメーターを呼び出しで渡す必要がないことを指示するために 、対応するパラメーター定義にキーワード OPTIONS(*NOPASS) を指定してくだ さい。 最初の *NOPASS 以降のすべてのパラメーターにも OPTIONS(*NOPASS) を指定しな ければならないことに注意してください。
*NOPASS と *OMIT の両方を同じパラメーターに任意の順序で、すなわち OPTIONS(*NOPASS:*OMIT) または OPTIONS(*OMIT:*NOPASS) のどちらでも 指定することができます。
OPTIONS(*NOPASS) の例として、任意指定の 3 番目のパラメーターをもつ システム API QCMDEXC (コマンドの実行) を考えてください。 このパラメーターが使えるようにするには、図 1 に示すように QCMDEXC のプロトタイプを書くことができます。
図 1. 任意指定パラメーターのシステム API QCMDEXC のパラメーター
*-------------------------------------------------------------
* QCMDEXC のこのプロトタイプは次の 3 つのパラメーターを定義します。
* 1- 必要な長さよりも短い
* 文字フィールド
* 2- 数値フィールド
* 3- 任意指定の文字フィールド
*-------------------------------------------------------------
D qcmdexc PR EXTPGM('QCMDEXC')
D cmd 3000A OPTIONS(*VARSIZE) CONST
D cmdlen 15P 5 CONST
D 3A CONST OPTIONS(*NOPASS)