![]() |
| CALL and CALLPRC command in CL |
CALL and CALLPRC Introduction
CALL Command is used to call another program whereas CALLPRC command calls a bound procedure named on the command.
CL program for CALL and CALLPRC command
PGM
DCL VAR(&NUM1) TYPE(*DEC) LEN(4 0) VALUE(52)
DCL VAR(&NUM2) TYPE(*DEC) LEN(4 0) VALUE(22)
DCL VAR(&res) TYPE(*DEC) LEN(4 0)
DCL VAR(&RESC) TYPE(*CHAR) LEN(4)
CALL PGM(OCT1A)
CALL PGM(OCT1D)
CALLPRC PRC(OCT1B)
CALLPRC PRC(OCT1E)
CALLPRC PRC(OCT1C)
CALLPRC PRC(OCT1F)
CALLPRC PRC(SUBTRACT) PARM((&NUM1 *BYVAL) (&NUM2 +
*BYVAL)) RTNVAL(&RES)
CHGVAR VAR(&RESC) VALUE(&RES)
SNDPGMMSG MSG(&RESC) MSGTYPE(*COMP)
CALLPRC PRC(SUBTRACTED) PARM((&NUM1 *BYREF) (&NUM2 +
*BYREF)) RTNVAL(&RES)
CHGVAR VAR(&RESC) VALUE(&RES)
SNDPGMMSG MSG(&RESC) MSGTYPE(*COMP)
ENDPGM
Explanation of the above code
DCL VAR(&NUM1) TYPE(*DEC) LEN(4 0) VALUE(52)
DCL VAR(&NUM2) TYPE(*DEC) LEN(4 0) VALUE(22)
DCL VAR(&res) TYPE(*DEC) LEN(4 0)
DCL VAR(&RESC) TYPE(*CHAR) LEN(4)
CALL PGM(OCT1A)
CALL PGM(OCT1D)
CALLPRC PRC(OCT1B)
CALLPRC PRC(OCT1E)
CALLPRC PRC(OCT1C)
CALLPRC PRC(OCT1F)
CALLPRC PRC(SUBTRACT) PARM((&NUM1 *BYVAL) (&NUM2 +
*BYVAL)) RTNVAL(&RES)
CHGVAR VAR(&RESC) VALUE(&RES)
SNDPGMMSG MSG(&RESC) MSGTYPE(*COMP)
CALLPRC PRC(SUBTRACTED) PARM((&NUM1 *BYREF) (&NUM2 +
*BYREF)) RTNVAL(&RES)
CHGVAR VAR(&RESC) VALUE(&RES)
SNDPGMMSG MSG(&RESC) MSGTYPE(*COMP)
ENDPGM
