CALL (プログラムの呼び出し)

自由形式構文 (許可されていない - CALLP 命令コードを使用)
コード 演算項目 1 演算項目 2 結果フィールド 標識
CALL (E)   プログラム名 PLIST 名 _ ER LR

CALL 命令では、演算項目 2 に指定されたプログラムに制御が渡されます。

演算項目 2 には、呼び出されるプログラムの名前を指定する文字項目を入れな ければなりません。

結果フィールドには、次のいずれかによってパラメーターを指定します。
  • PLIST の名前を入れます。
  • 結果フィールドをブランクのままにします。 これは、呼び出されたプログラムがパラメーターにアクセスしない場合、また は PARM ステートメントが CALL 命令の直後に続く場合に有効です。

71 桁目と 72 桁目はブランクでなければなりません。

CALL 例外 (プログラム状況コードが 202、211、 または 231) を処理するために、命令コード拡張 'E' またはエラー標識 ER を指定 できますが、両方を指定することはできません。 エラー処理の詳細については、プログラム例外/エラーを 参照してください。

呼び出し先プログラムが LR 標識をオンにして戻された RPG プログラムまたはサイクル・メイン・プロシージャーである場合、有効な結果の標識 をオンに設定して、75 桁目と 76 桁目に指定することができます。
注: スレッド・セーフ環境内では、LR 標識は使用できません。

呼び出し命令の詳細については、呼び出し命令を参照してください。

図 1. CALL 命令
*...1....+....2....+....3....+....4....+....5....+....6....+....7....+....
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....
 *  The CALL operation calls PROGA and allows PROGA to access
 *  FieldA and FieldB, defined elsewhere. PROGA is run using the content
 *  of FieldA and FieldB.  When PROGA has completed, control
 *  returns to the statement following the last PARM statement.
 *
 *
C                   CALL      'PROGA'
C                   PARM                    FieldA
C                   PARM                    FieldB