CALLP 命令の使用

ユーザーは CALLP (プロトタイプ・プロシージャーの呼び出し) 命令を使って、任意の言語で書かれた プロトタイプ・プログラムまたはプロシージャーを呼び出すことができます。CALLP 命令は次の拡張因子 2 構文を使用します。

          C                   CALLP     NAME{ (PARM1 {:PARM2 ...}) }

自由形式演算では、命令拡張がない場合には CALLP を省略することができます。自由形式命令は次の形式のいずれかを使用することができます。

      /free
          callp name { (parm1 { :parm2 ...}) };
          name({parm1 {:parm2 ... }});
      /end-free

プロトタイプ・プログラムまたはプロシージャーを呼び出すには、以下の一般ステップに従います。

  1. 呼び出されるプログラムまたはプロシージャーのプロトタイプを定義仕様書に 組み込んでください。
  2. 拡張演算項目 2 フィールドに、プログラムまたはプロシージャーの プロトタイプ名を入力し、パラメーターがあれば括弧に入れて、これに続けます。 パラメーターはコロン (:) で区切ります。 演算項目 1 はブランクでなければなりません。

次の例は、プロシージャー Switch の呼び出しを示します。このプロシージャーは、渡される 標識 (この場合には *IN10) の状態を変更します。

     C                   CALLP     Switch(*in10)

プログラム呼び出しでは、最大 255 パラメーターを使用することができ、 プロシージャー呼び出しでは、最大 399 パラメーターを使用することができます。

モジュール内のどこからでも CALLP を使用することができます。 プロトタイプにキーワード EXTPGM が指定されている場合には、呼び出しは動的外部 呼び出しになります。そうでない場合には、これはバインド・プロシージャー呼び出しです。

CALLP を使用して値を戻すプロシージャーを呼び出した場合には、その値 は呼び出し側には使用できないことに注意してください。 値が必要な場合は、式の中でプロトタイプ・プロシージャーを呼び出します。