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