Static CALL
Static CALL Example
Scenario - Static Call from MAINPROG to SUBPROG.
MAINPROG -
----+----1----+----2----+----3----+----4----+----5----+
IDENTIFICATION DIVISION.
PROGRAM-ID. MAINPRST.
AUTHOR. MTH.
PROCEDURE DIVISION.
DISPLAY "Before Calling Subprogram".
CALL "SUBPRST".
DISPLAY "Returned From Subprogram".
STOP RUN.
SUBPROG -
----+----1----+----2----+----3----+----4----+----5----+
IDENTIFICATION DIVISION.
PROGRAM-ID. SUBPRST.
AUTHOR. MTH.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-VAR.
05 WS-INP1 PIC 9(02) VALUE 10.
05 WS-INP2 PIC 9(02) VALUE 20.
05 WS-RESULT PIC 9(03) VALUE ZEROES.
PROCEDURE DIVISION.
COMPUTE WS-RESULT = WS-INP1 + WS-INP2.
DISPLAY "RESULT (SUBPROG): " WS-RESULT.
GOBACK.
JCL -
//MATEPKRJ JOB MSGLEVEL=(1,1),NOTIFY=&SYSUID //*********************************************** //* RUN A COBOL PROGRAM //*********************************************** //STEP01 EXEC PGM=MAINPRST //STEPLIB DD DSN=MATEPK.COBOL.LOADLIB,DISP=SHR //SYSOUT DD SYSOUT=*
Output -
Before calling subprogram RESULT (SUBPROG): 030 Returned from subprogram
Explaining Example -
In the above example:
- MAINPRST is the main program, and SUBPRST is the subprogram.
- CALL "SUBPRST" makes the call as static call.
- WS-INP1 and WS-INP2 are the precoded inputs in the SUBPRST.
- SUBPRST adds those values, places the result into WS-RESULT and displays it.
- Returns the control to the main program.