To transfer program control to a subordinate level, expecting return of control to the instruction immediately following the request, perform the following steps:
Example of Passing Control to a Lower Level
The program excerpt below transfers control to DEPTCHEK, a subroutine that performs error-checking.
The GETPROG program performs processing based on the status returned by the DEPTCHEK program.
DATA DIVISION. WORKING-STORAGE SECTION. 01 DEPTCHEK PIC X(8) VALUE 'DEPTCHEK'.
01 ERRCHEK-INFO.
05 CHEK-DEPT-ID PIC 9(4).
05 CHEK-ERRSTAT PIC X(4).
PROCEDURE DIVISION.
BIND MAP SOLICIT.
BIND MAP SOLICIT RECORD SOLICIT-REC.
MAP IN USING SOLICIT.
MOVE SOLICIT-DEPT-ID TO CHEK-DEPT-ID.
MOVE 'OK' TO CHEK-ERRSTAT.
*** TRANSFER CONTROL TO ERROR CHECKING PROGRAM ***
TRANSFER CONTROL TO DEPTCHEK LINK USING
CHEK-DEPT-ID
CHEK-ERRSTAT.
IF CHEK-ERRSTAT NOT = 'OK'
GO TO ERR-DEPT-ID.
COPY IDMS SUBSCHEMA-BINDS.
READY.
MOVE SOLICIT-DEPT-ID TO DEPT-ID-0410.
OBTAIN DEPARTMENT CALC
ON DB-REC-NOT-FOUND
PERFORM ERR-NO-DEPT.
*** FURTHER DATABASE PROCESSING ***
______________________________________________________________________________
PROGRAM-ID. DEPTCHEK.
DATA DIVISION.
LINKAGE SECTION.
01 CH-DEPT-INFO.
05 CH-ID PIC 9(4).
05 CH-ERRSTAT PIC X(4).
PROCEDURE DIVISION USING CH-DEPT-INFO.
*** PERFORM ERROR AND RANGE CHECKING ***
IF CH-ID NOT NUMERIC
THEN MOVE 'NNUM' TO CH-ERRSTAT
ELSE
IF CH-ID > 8000 OR < 1000
MOVE 'RANG' TO CH-ERRSTAT.
*** RETURN CONTROL TO CALLING PROGRAM ***
DC RETURN.
|
Copyright © 2013 CA.
All rights reserved.
|
|