パラメーターの省略

パラメーターを省略するもう 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)