COBOL Programs & JCL Execution Guide
COBOL Programs & JCL Execution Guide
IDENTIFICATION DIVISION.
PROGRAM-ID. DISPGM.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
MAIN-PARA.
DISPLAY 'WELCOME TO SUGUMAR'.
STOP RUN.
IDENTIFICATION DIVISION.
PROGRAM-ID. ADDPGM.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 NUM1 PIC 9(3) VALUE ZEROS.
77 NUM2 PIC 9(3) VALUE ZEROS.
77 RESU PIC 9(4) VALUE ZEROS.
PROCEDURE DIVISION.
MAIN-PARA.
DISPLAY 'ENTER THE NUMBER ONE VALUE'.
ACCEPT NUM1.
DISPLAY 'ENTER THE NUMBER TWO VALUE'.
ACCEPT NUM2.
COMPUTE RESU = NUM1 + NUM2.
DISPLAY 'THE RESULT OF TWO NUMBERS:' RESU.
STOP RUN.
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page2/
2
//***************************************************
//STEP1 EXEC PGM=ADDPGM
//STEPLIB DD DSN=IND220.INDUS.LOADLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
020
030
/*
//
IDENTIFICATION DIVISION.
PROGRAM-ID. MULPGM.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 NUM1 PIC 9(3) VALUE ZEROS.
77 NUM2 PIC 9(3) VALUE ZEROS.
77 NUM3 PIC 9(3) VALUE ZEROS.
77 RESU PIC 9(4) VALUE ZEROS.
PROCEDURE DIVISION.
MAIN-PARA.
DISPLAY 'ENTER THE NUMBER ONE VALUE'.
ACCEPT NUM1.
DISPLAY 'ENTER THE NUMBER TWO VALUE'.
ACCEPT NUM2.
DISPLAY 'ENTER THE NUMBER THREE VALUE'.
ACCEPT NUM3.
COMPUTE RESU = NUM1 * NUM2 * NUM3.
DISPLAY 'THE MULTIPLICATION OF 3 NOS:' RESU.
STOP RUN.
Execution JCL
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page3/
3
IDENTIFICATION DIVISION.
PROGRAM-ID. ADDPGM2.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 NUM1 PIC 9(3) VALUE ZEROS.
77 NUM2 PIC 9(3) VALUE ZEROS.
77 RESU PIC 9(4) VALUE ZEROS.
77 OPTION PIC X(3) VALUE 'YES'.
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM ACC-ADD-PARA UNTIL OPTION = 'NO'.
STOP RUN.
ACC-ADD-PARA.
DISPLAY 'ENTER THE NUMBER ONE VALUE'.
ACCEPT NUM1.
DISPLAY 'ENTER THE NUMBER TWO VALUE'.
ACCEPT NUM2.
COMPUTE RESU = NUM1 + NUM2.
DISPLAY 'THE RESULT OF TWO NUMBERS:' RESU.
DISPLAY 'DO YOU WANT TO ADD MORE NUMBERS YES/NO'.
ACCEPT OPTION.
Execution JCL
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page4/
4
//***************************************************
//STEP10 EXEC PGM=ADDPGM
//STEPLIB DD DSN=IND220.INDUS.LOADLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
020
030
/*
//STEP20 EXEC PGM=ADDPGM2
//STEPLIB DD DSN=IND220.INDUS.LOADLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
020
030
YES
040
025
NO
/*
//STEP30 EXEC PGM=MULPGM
//STEPLIB DD DSN=IND220.INDUS.LOADLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
020
020
020
/*
//
IDENTIFICATION DIVISION.
PROGRAM-ID. PARMPGM.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 WS-LEN PIC 9(4).
LINKAGE SECTION.
01 PARM-FILEDS.
05 PARM-LEN PIC S9(4) COMP.
05 PARM-TEXT PIC X(13).
PROCEDURE DIVISION USING PARM-FILEDS.
MAIN-PARA.
DISPLAY 'PARM-TEXT:' PARM-TEXT.
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page5/
5
Execution JCL:
IDENTIFICATION DIVISION.
PROGRAM-ID. WRIPGM.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT STU-FILE ASSIGN TO DD1
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD STU-FILE
RECORDING MODE IS F
LABEL RECORDS ARE STANDARD
RECORD CONTAINS 44 CHARACTERS
BLOCK CONTAINS 10 RECORDS.
01 STU-REC.
05 STU-NO PIC 9999.
05 STU-NAME PIC X(20).
05 STU-ADDR PIC X(20).
WORKING-STORAGE SECTION.
77 OPTION PIC X(3) VALUE 'YES'.
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM OPEN-PARA.
PERFORM WRITE-PARA UNTIL OPTION = 'NO'.
PERFORM CLOSE-PARA.
STOP RUN.
OPEN-PARA.
OPEN OUTPUT STU-FILE.
WRITE-PARA.
ACCEPT STU-NO.
ACCEPT STU-NAME.
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page6/
6
ACCEPT STU-ADDR.
WRITE STU-REC.
ACCEPT OPTION.
CLOSE-PARA.
CLOSE STU-FILE.
IDENTIFICATION DIVISION.
PROGRAM-ID. REAPGM.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT STU-FILE ASSIGN TO DD1
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL.
DATA DIVISION.
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page7/
7
FILE SECTION.
FD STU-FILE
RECORDING MODE IS F
LABEL RECORDS ARE STANDARD
RECORD CONTAINS 44 CHARACTERS
BLOCK CONTAINS 10 RECORDS.
01 STU-REC.
05 STU-NO PIC 9999.
05 STU-NAME PIC X(20).
05 STU-ADDR PIC X(20).
WORKING-STORAGE SECTION.
77 OPTION PIC X(3) VALUE 'YES'.
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM OPEN-PARA.
PERFORM REA-PARA UNTIL OPTION = 'NO'.
PERFORM CLOSE-PARA.
STOP RUN.
OPEN-PARA.
OPEN INPUT STU-FILE.
REA-PARA.
READ STU-FILE
AT END
MOVE 'NO' TO OPTION
NOT AT END
PERFORM DISPLAY-PARA
END-READ.
DISPLAY-PARA.
DISPLAY 'STUDENT NUMBER:' STU-NO.
DISPLAY 'STUDENT NAME:' STU-NAME.
DISPLAY 'STUDENT ADDRESS:' STU-ADDR.
CLOSE-PARA.
CLOSE STU-FILE.
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page8/
8
IDENTIFICATION DIVISION.
PROGRAM-ID. REWRPGM.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page9/
9
IDENTIFICATION DIVISION.
PROGRAM-ID. VARFILE.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT EMP-FILE ASSIGN TO EMPDD
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD EMP-FILE
LABEL RECORDS ARE STANDARD
RECORDING MODE IS V
RECORD CONTAINS 37 TO 55 CHARACTERS
BLOCK CONTAINS 0 RECORDS.
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page10
/10
01 EMP-REC.
05 EMP-NO PIC 9(4).
05 EMP-NAME PIC X(10).
05 EMP-ADDR PIC X(10).
05 BONUS OCCURS 1 TO 3 TIMES DEPENDING ON TIM.
10 BONUS-TYPE PIC X(5).
10 BONUS-AMOUNT PIC 9(4).
05 EMP-SALARY PIC 9(4).
WORKING-STORAGE SECTION.
77 TIM PIC 9(2) VALUE ZEROS.
77 I PIC 9(2) VALUE ZEROS.
77 OPTION PIC X(3) VALUE 'YES'.
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM OPEN-PARA.
PERFORM WRITE-PARA UNTIL OPTION = 'NO'.
PERFORM CLOSE-PARA.
STOP RUN.
OPEN-PARA.
OPEN OUTPUT EMP-FILE.
WRITE-PARA.
DISPLAY 'ENTER THE EMPLOYEE NUMBER'.
ACCEPT EMP-NO.
DISPLAY 'ENTER THE EMPLOYEE NAME'.
ACCEPT EMP-NAME.
DISPLAY 'ENTER THE EMPLOYEE ADDRESS'.
ACCEPT EMP-ADDR.
DISPLAY 'ENTER THE VALUE FOR TIM'.
ACCEPT TIM.
PERFORM VARYING I FROM 1 BY 1 UNTIL I > 3 OR I > TIM
DISPLAY 'ENTER THE BONUS TYPE'
ACCEPT BONUS-TYPE(I)
DISPLAY 'ENTER THE BONUS AMOUNT'
ACCEPT BONUS-AMOUNT(I)
END-PERFORM.
DISPLAY 'ENTER THE EMPLOYEE SALARY'.
ACCEPT EMP-SALARY.
WRITE EMP-REC.
DISPLAY ' DO YOU WANTS TO ENTER MORE RECORDS YES/NO'.
ACCEPT OPTION.
CLOSE-PARA.
CLOSE EMP-FILE.
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page11
/11
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//EMPDD DD DSN=IND220.INDUS.EMPFILE.TST2,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(1,1),RLSE),
// UNIT=SYSDA,
// DCB=(DSORG=PS,RECFM=V,LRECL=59,BLKSIZE=0)
//* Add 4 bytes to the maximum record length to get the LRECL
field..
//SYSIN DD *
1111
VIJAY
TANUKU
02
FIRST
1000
SECOND
2000
25000
YES
2222
BHASKAR
TANUKU
03
FIRST
2000
SECOND
3000
THIRD
4000
35000
YES
3333
ANUKURI
TANUKU
01
FIRST
500
23000
NO
/*
//
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page12
/12
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page13
/13
// DISP=(OLD,DELETE,DELETE)
//
//IND220SO JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//***************************************************
//*DEMO JCL TO SHOW THE IEBGENR UTILTITY
//***************************************************
//STEP10 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSDUMP DD SYSOUT=*
//SYSUT1 DD DSN=IND220.INDUS.EMPFILE,DISP=SHR
//SYSUT2 DD DSN=IND220.INDUS.EMPFILE.BACKUP,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(1,1),RLSE),
// UNIT=SYSDA,
// DCB=(DSORG=PS,RECFM=FB,LRECL=23,BLKSIZE=230)
//SYSIN DD DUMMY
//
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page14
/14
COPY INDD=SYSUT1,OUTDD=SYSUT2
//
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page15
/15
COPY INDD=SYSUT1,OUTDD=SYSUT2
EXCLUDE MEMBER=PARMPGM,PARMPGM$
//
To compress the PDS, use the same PDS in INDD and OUTDD.
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page16
/16
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSDUMP DD SYSOUT=*
//SYSUT1 DD DSN=IND220.VIJAY.PS,DISP=SHR
//SYSUT2 DD DSN=IND220.VIJAY.PS.TST1,DISP=SHR
//SYSIN DD DUMMY
//
//IND220SO JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//***************************************************
//*DEMO JCL TO SHOW THE SORT UTILTITY WITH COPY OPTION
//***************************************************
//STEP10 EXEC PGM=SORT
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSDUMP DD SYSOUT=*
//SORTIN DD DSN=IND220.PRIYA.COBOL.EMPFILE,DISP=SHR
//SORTOUT DD DSN=IND220.PRIYA.COBOL.SOROUT,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(1,1),RLSE),
// UNIT=SYSDA,
// DCB=(DSORG=PS,RECFM=FB,LRECL=30,BLKSIZE=300)
//SORTWK01 DD SPACE=(TRK,(1,1),RLSE),UNIT=SYSDA
//SORTWK02 DD SPACE=(TRK,(1,1),RLSE),UNIT=SYSDA
//SYSIN DD *
SORT FIELDS=(1,3,CH,A)
//
SORT
//IND220SO JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//***************************************************
//*DEMO JCL TO SHOW THE SORT UTILTITY WITH COPY OPTION
//***************************************************
//STEP10 EXEC PGM=SORT
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSDUMP DD SYSOUT=*
//SORTIN DD DSN=IND220.PRIYA.COBOL.EMPFILE,DISP=SHR
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page17
/17
//SORTOUT DD DSN=IND220.PRIYA.COBOL.EMPFILE.TST1,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(1,1),RLSE),
// UNIT=SYSDA,
// DCB=(DSORG=PS,RECFM=FB,LRECL=30,BLKSIZE=300)
//SORTWK01 DD SPACE=(TRK,(1,1),RLSE),UNIT=SYSDA
//SORTWK02 DD SPACE=(TRK,(1,1),RLSE),UNIT=SYSDA
//SYSIN DD *
SORT FIELDS=COPY,
SKIPREC=2,
STOPAFT=2
//
//IND220SO JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//***************************************************
//*DEMO JCL TO SHOW THE SORT UTILTITY WITH COPY OPTION
//***************************************************
//STEP10 EXEC PGM=SORT
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSDUMP DD SYSOUT=*
//SORTIN01 DD DSN=IND220.PRIYA.COBOL.EMPFILE,DISP=SHR
//SORTIN02 DD DSN=IND220.PRIYA.COBOL.SORTOUT,DISP=SHR
//SORTOUT DD DSN=IND220.PRIYA.COBOL.MEROUT,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(1,1),RLSE),
// UNIT=SYSDA,
// DCB=(DSORG=PS,RECFM=FB,LRECL=30,BLKSIZE=300)
//SORTWK01 DD SPACE=(TRK,(1,1),RLSE),UNIT=SYSDA
//SORTWK02 DD SPACE=(TRK,(1,1),RLSE),UNIT=SYSDA
//SYSIN DD *
MERGE FIELDS=(1,3,CH,A)
//
//IND220SO JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//***************************************************
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page18
/18
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page19
/19
//IND220SO JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//***************************************************
//* TO DEFINE THE KEY SEQUENCED DATA SET (KSDS)
//***************************************************
//STEPOZA EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
DEFINE CLUSTER(NAME(IND220.INDUS.STUDENT.CLUSTER) -
RECORDSIZE(44,44) -
CYLINDERS(3,2) -
FREESPACE(10,20) -
KEYS(4,0) -
CISZ(4096) -
INDEXED) -
INDEX(NAME(IND220.INDUS.STUDENT.INDEX)) -
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page20
/20
DATA(NAME(IND220.INDUS.STUDENT.DATA))
/*
//
//IND220SO JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//***************************************************
//*SAMPLE JCL TO CREATE RRDS
//***************************************************
//STEPOZA EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
DEFINE CLUSTER(NAME(IND220.INDUS.RRDS.CLUSTER) -
RECORDSIZE(44,44) -
CYLINDERS(3,2) -
NUMBERED) -
DATA(NAME(IND220.INDUS.RRDS.DATA))
/*
//
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page21
/21
IDENTIFICATION DIVISION.
PROGRAM-ID. ESDSWRI.
AUTHOR. SUGUMAR.
INSTALLATION. [email protected].
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT STU-FILE ASSIGN TO AS-STUDD
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD STU-FILE.
01 STU-REC.
05 STU-NO PIC 9999.
05 STU-NAME PIC X(20).
05 STU-ADDR PIC X(20).
WORKING-STORAGE SECTION.
77 OPTION PIC X(3) VALUE 'YES'.
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM OPEN-PARA.
PERFORM WRITE-PARA UNTIL OPTION = 'NO'.
PERFORM CLOSE-PARA.
STOP RUN.
OPEN-PARA.
OPEN OUTPUT STU-FILE.
WRITE-PARA.
ACCEPT STU-NO.
ACCEPT STU-NAME.
ACCEPT STU-ADDR.
WRITE STU-REC.
ACCEPT OPTION.
CLOSE-PARA.
CLOSE STU-FILE.
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page22
/22
2222
BHASKAR
TANUKU
YES
3333
ANDUKURI
TANUKU
NO
/*
//
IDENTIFICATION DIVISION.
PROGRAM-ID. KSDSWRI.
AUTHOR. SUGUMAR.
INSTALLATION. [email protected].
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page23
/23
*************************************************************
* HOW TO USE THE STATUS CODE AND RETURN-CODE REGISTERS *
*************************************************************
IF WS-STAT = '00'
DISPLAY 'RECORD INSERTED SUCCESSFULLY'
ELSE
DISPLAY 'FILE STATUS CODE IS :' WS-STAT
MOVE '3002' TO RETURN-CODE
DISPLAY RETURN-CODE UPON SYSOUT
END-IF.
ACCEPT OPTION.
CLOSE-PARA.
CLOSE STU-FILE.
IDENTIFICATION DIVISION.
PROGRAM-ID. RRDSWRI.
AUTHOR. SUGUMAR.
INSTALLATION. [email protected].
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page24
/24
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page25
/25
//SYSIN DD *
1111
VIJAYA
TANUKU
YES
2222
BHASKAR
TANUKU
YES
3333
ANDUKURI
TANUKU
NO
/*
//
IDENTIFICATION DIVISION.
PROGRAM-ID. RRDSRAW.
AUTHOR. SUGUMAR.
INSTALLATION. [email protected].
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT STU-FILE ASSIGN TO STUDD
ORGANIZATION IS RELATIVE
ACCESS MODE IS RANDOM
RELATIVE KEY IS WS-KEY
FILE STATUS IS WS-STAT.
DATA DIVISION.
FILE SECTION.
FD STU-FILE.
01 STU-REC.
05 STU-NO PIC 9999.
05 STU-NAME PIC X(20).
05 STU-ADDR PIC X(20).
WORKING-STORAGE SECTION.
77 OPTION PIC X(3) VALUE 'YES'.
77 WS-STAT PIC X(2) VALUE SPACES.
77 WS-KEY PIC 9(4).
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM OPEN-PARA.
PERFORM WRITE-PARA UNTIL OPTION = 'NO'.
PERFORM CLOSE-PARA.
STOP RUN.
OPEN-PARA.
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page26
/26
Execution JCL
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page27
/27
IDENTIFICATION DIVISION.
PROGRAM-ID. KSDSEQR.
AUTHOR. INDUS COMPUTER SERVIES. S.R.NAGAR, HUDERABAD.
* INDEXED FILE READING SEQUENTIALLY....
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT STU-FILE ASSIGN TO STUDD
ORGANIZATION IS INDEXED
ACCESS MODE IS SEQUENTIAL
RECORD KEY IS STU-NO
FILE STATUS IS WS-STAT.
DATA DIVISION.
FILE SECTION.
FD STU-FILE.
01 STU-REC.
05 STU-NO PIC 9999.
05 STU-NAME PIC X(20).
05 STU-ADDR PIC X(20).
WORKING-STORAGE SECTION.
77 OPTION PIC X(3) VALUE 'YES'.
77 WS-STAT PIC X(2) VALUE SPACES.
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM OPEN-PARA.
PERFORM READ-PARA UNTIL OPTION = 'NO'.
PERFORM CLOSE-PARA.
STOP RUN.
OPEN-PARA.
OPEN INPUT STU-FILE.
READ-PARA.
READ STU-FILE
AT END
MOVE 'NO' TO OPTION
NOT AT END
PERFORM DISPLAY-PARA
END-READ.
IF WS-STAT = '00'
DISPLAY 'RECORD READ SUCCESSFUL'
ELSE
DISPLAY 'FILE STATUS CODE IS :' WS-STAT
MOVE '3001' TO RETURN-CODE
DISPLAY RETURN-CODE UPON SYSOUT
END-IF.
DISPLAY-PARA.
DISPLAY STU-REC.
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page28
/28
CLOSE-PARA.
CLOSE STU-FILE.
IDENTIFICATION DIVISION.
PROGRAM-ID. KSDSRAR.
AUTHOR. INDUS COMPUTER SERVIES. S.R.NAGAR, HUDERABAD.
* INDEXED FILE READING RANDOMLY ......
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT STU-FILE ASSIGN TO STUDD
ORGANIZATION IS INDEXED
ACCESS MODE IS RANDOM
RECORD KEY IS STU-NO
FILE STATUS IS WS-STAT.
DATA DIVISION.
FILE SECTION.
FD STU-FILE.
01 STU-REC.
05 STU-NO PIC 9999.
05 STU-NAME PIC X(20).
05 STU-ADDR PIC X(20).
WORKING-STORAGE SECTION.
77 OPTION PIC X(3) VALUE 'YES'.
77 WS-STAT PIC X(2) VALUE SPACES.
77 WS-STU-NO PIC 9(4) VALUE ZEROS.
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM OPEN-PARA.
PERFORM READ-PARA UNTIL OPTION = 'NO'.
PERFORM CLOSE-PARA.
STOP RUN.
OPEN-PARA.
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page29
/29
Execution JCL
IDENTIFICATION DIVISION.
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page30
/30
PROGRAM-ID. KSDSDYR.
AUTHOR. INDUS COMPUTER SERVIES. S.R.NAGAR, HUDERABAD.
* INDEXED FILE READING DYNAMICALLY....
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT STU-FILE ASSIGN TO STUDD
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS STU-NO
FILE STATUS IS WS-STAT.
DATA DIVISION.
FILE SECTION.
FD STU-FILE.
01 STU-REC.
05 STU-NO PIC 9999.
05 STU-NAME PIC X(20).
05 STU-ADDR PIC X(20).
WORKING-STORAGE SECTION.
77 OPTION PIC X(3) VALUE 'YES'.
77 WS-STAT PIC X(2) VALUE SPACES.
77 WS-STU-NO PIC 9(4) VALUE ZEROS.
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM OPEN-PARA.
DISPLAY 'ENTER THE STUDENT NUMBER TO READ'.
ACCEPT WS-STU-NO.
MOVE WS-STU-NO TO STU-NO.
START STU-FILE INVALID KEY DISPLAY 'ERROR'.
PERFORM READ-PARA UNTIL OPTION = 'NO'.
PERFORM CLOSE-PARA.
STOP RUN.
OPEN-PARA.
OPEN INPUT STU-FILE.
READ-PARA.
READ STU-FILE NEXT RECORD
AT END
MOVE 'NO' TO OPTION
NOT AT END
PERFORM DISPLAY-PARA
END-READ.
IF WS-STAT = '00'
DISPLAY 'RECORD READ SUCCESSFUL'
ELSE
DISPLAY 'FILE STATUS CODE IS :' WS-STAT
MOVE '3001' TO RETURN-CODE
DISPLAY RETURN-CODE UPON SYSOUT
END-IF.
DISPLAY-PARA.
DISPLAY STU-REC.
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page31
/31
CLOSE-PARA.
CLOSE STU-FILE.
Execution JCL
//IND220SO JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//***************************************************
//*SAMPLE JCL TO CREATE ALTERNATE INDEX
//***************************************************
//STEPOZA EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
DEFINE AIX -
(NAME(IND220.INDUS.STUDENT.CLUSTER.ALX) -
RELATE(IND220.INDUS.STUDENT.CLUSTER) -
CISZ(4096) -
KEYS(20,4) -
NONUNIQUEKEY -
UPGRADE-
RECORDSIZE(29,29)-
CYLINDERS(3,2)-
FREESPACE(10,20)-
)
/*
//
Define path
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page32
/32
//IND220SO JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//***************************************************
//*SAMPLE JCL TO DEFINE PATH
//***************************************************
//STEPOZA EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINE PATH (NAME(IND220.INDUS.STUDENT.CLUSTER.PATH) -
PATHENTRY(IND220.INDUS.STUDENT.CLUSTER.ALX) UPDATE
/*
//
//IND220SO JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//***************************************************
//*SAMPLE JCL TO BUILD ALTERNATE INDEX
//***************************************************
//STEP EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
BLDINDEX -
INDATASET(IND220.INDUS.STUDENT.CLUSTER) -
OUTDATASET(IND220.INDUS.STUDENT.CLUSTER.ALX)
/*
//
//IND220SO JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//***************************************************
//*SAMPLE JCL TO PRINT/DISPLAY VSAM DATA
//***************************************************
//STEPOZA EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page33
/33
//SYSOUT DD SYSOUT=*
//DDIN DD DSN=IND220.INDUS.STUDENT.CLUSTER.ALX,DISP=SHR
//SYSIN DD *
PRINT -
INFILE(DDIN) -
CHAR
/*
//
IDENTIFICATION DIVISION.
PROGRAM-ID. KSDSAIXR.
AUTHOR. SUGUMAR.
INSTALLATION. [email protected]
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT STU-FILE ASSIGN TO STUDMAST
ORGANIZATION IS INDEXED
ACCESS MODE IS RANDOM
RECORD KEY IS STU-NO
ALTERNATE KEY IS STU-NAME WITH DUPLICATES
FILE STATUS IS WS-STATUS.
DATA DIVISION.
FILE SECTION.
FD STU-FILE.
01 STU-REC.
05 STU-NO PIC 9(4).
05 STU-NAME PIC X(20).
05 STU-ADDR PIC X(20).
WORKING-STORAGE SECTION.
77 OPTION PIC X(3) VALUE 'YES'.
77 WS-NAME PIC X(20).
77 WS-STATUS PIC XX VALUE SPACES.
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM OPEN-PARA.
PERFORM READ-PARA UNTIL OPTION = 'NO'.
PERFORM CLOSE-PARA.
STOP RUN.
OPEN-PARA.
OPEN INPUT STU-FILE.
READ-PARA.
DISPLAY 'ENTER THE NAME TO READ:'.
ACCEPT WS-NAME.
MOVE WS-NAME TO STU-NAME.
READ STU-FILE KEY IS STU-NAME
INVALID KEY DISPLAY 'RECORD NOT FOUND'
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page34
/34
NOT INVALID
PERFORM DISPLAY-PARA
END-READ.
IF WS-STATUS = '00'
DISPLAY 'SUCCESS'
ELSE
DISPLAY 'WS-STATUS:' WS-STATUS
END-IF.
ACCEPT OPTION.
DISPLAY-PARA.
DISPLAY STU-REC.
CLOSE-PARA.
CLOSE STU-FILE.
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page35
/35
//SYSDUMP DD SYSOUT=*
//SYSIN DD *
ALTER IND220.INDUS.CUSTOMER.INDEX -
NEWNAME(IND220.INDUS.VIJAY.INDEX)
/*
//
IND220.INDUS.SUTDENT.PSFILE
=COLS> ----+----1----+----2----+----3----+----4----
000001 1111AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
000002 2222BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
000003 3333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page36
/36
000004 4444DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
000005 5555EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
000006 6666FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
000007 7777GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
000008 8888HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
000009 9999IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page37
/37
OUTFILE(DD2) -
FROMKEY(4444) -
TOKEY(5555)
/*
//
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page38
/38
//***************************************************
//*DEMO JCL TO SHOW THE IEBGENR UTILTITY
//***************************************************
//STEP10 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSDUMP DD SYSOUT=*
//SYSIN DD *
LISTCAT ENTRIES(IND220.INDUS.CUSTOMER.CLUSTER) -
VOLUME
/*
//
EXPORT COMMAND
IMPORT
COMMAND
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page39
/39
/*
//
ALTER
COMMND
MODEL
COMMANDS
Compile JCL’S:
//IND220CL JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
//
NOTIFY=&SYSUID,REGION=6M
//************************************************************
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page40
/40
//JOBPROC JCLLIB
ORDER=IND120.INDUS.PROCLIB
//COBCL EXEC
COBCL,MEM=KSDSDYR
//COMPILE.SYSIN DD
DSN=IND220.INDUS.COBOL(&MEM),DISP=SHR
//COMPILE.SYSLIB DD
DSN=IND220.INDUS.COPYLIB,DISP=SHR
//LKED.SYSLMOD DD
DSN=IND220.INDUS.LOADLIB(&MEM),DISP=SHR
//
Compile procedure:
//COBCL PROC
LNGPRFX='IGY',SYSLBLK=0000,LIBPRFX='CEE'
//*
//COMPILE EXEC
PGM=IGYCRCTL,REGION=2048K,
//
PARM='RES,LIB,OBJECT,APOST,TEST,DYNAM,LIST'
//STEPLIB DD
DSNAME=&LNGPRFX..SIGYCOMP,DISP=SHR
//SYSPRINT DD
SYSOUT=*
//SYSLIN DD
DSNAME=&&LOADSET,UNIT=SYSALLDA,
//
DISP=(MOD,PASS),SPACE=(TRK,(3,3)),
//
DCB=(BLKSIZE=&SYSLBLK)
//SYSUT1 DD
UNIT=SYSALLDA,SPACE=(CYL,(1,1))
//SYSUT2 DD
UNIT=SYSALLDA,SPACE=(CYL,(1,1))
//SYSUT3 DD
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page41
/41
UNIT=SYSALLDA,SPACE=(CYL,(1,1))
//SYSUT4 DD
UNIT=SYSALLDA,SPACE=(CYL,(1,1))
//SYSUT5 DD
UNIT=SYSALLDA,SPACE=(CYL,(1,1))
//SYSUT6 DD
UNIT=SYSALLDA,SPACE=(CYL,(1,1))
//SYSUT7 DD
UNIT=SYSALLDA,SPACE=(CYL,(1,1))
//*
//LKED EXEC
PGM=HEWL,COND=(8,LT,COMPILE),REGION=1024K,PARM='XREF'
//SYSLIB DD
DSNAME=&LIBPRFX..SCEELKED,DISP=SHR
//SYSPRINT DD
SYSOUT=*
//SYSLIN DD
DSNAME=&&LOADSET,DISP=(OLD,DELETE)
// DD
DDNAME=SYSIN
//SYSUT1 DD
UNIT=SYSALLDA,SPACE=(TRK,(10,10))
//IND220SO JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//***************************************************
//JOBPROC JCLLIB
ORDER=IND220.INDUS.PROCLIB
//CICSCOB EXEC
CICSCOB,
//
COPYLIB=IND220.INDUS.COPYLIB,
//
LOADLIB=IND220.INDUS.LOADLIB
//TRN.SYSIN DD
DSN=IND220.INDUS.CICS(CUSTINQ3),DISP=SHR
//LKED.SYSLIB
DD
//
DD
// DD
DSN=IND220.INDUS.LOADLIB,DISP=SHR
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page42
/42
//LKED.SYSIN DD
*
NAME
CUSTINQ3(R)
//
compile procedure
//*
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page43
/43
//*
/*
//* //LKED.SYSIN DD
*
//* NAME
ANYNAME(R)
//*
/*
//*
//TRN EXEC
PGM=DFHECP1$,
//
PARM='COBOL3',
//
REGION=4M
//STEPLIB DD
DSN=CICSTS23.CICS.SDFHLOAD,DISP=SHR
//SYSPRINT DD
SYSOUT=&OUTC
//SYSPUNCH DD
DSN=&&SYSCIN,
//
DISP=(,PASS),UNIT=SYSDA,
//
DCB=BLKSIZE=400,
//
SPACE=(400,(400,100))
//*
//COB EXEC
PGM=IGYCRCTL,REGION=4M,
//
PARM='NODYNAM,LIB,OBJECT,RES,APOST,MAP,XREF,NOSEQUENCE'
//STEPLIB DD
DSN=IGY.SIGYCOMP,DISP=SHR
//SYSLIB DD
DSN=©LIB,DISP=SHR
// DD
DSN=CICSTS23.CICS.SDFHCOB,DISP=SHR
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page44
/44
// DD
DSN=CICSTS23.CICS.SDFHMAC,DISP=SHR
// DD
DSN=CICSTS23.CICS.SDFHSAMP,DISP=SHR
//SYSPRINT DD
SYSOUT=&OUTC
//SYSIN DD
DSN=&&SYSCIN,DISP=(OLD,DELETE)
//SYSLIN DD
DSN=&&LOADSET,DISP=(MOD,PASS),
//
UNIT=SYSDA,SPACE=(80,(250,100))
//SYSUT1 DD
UNIT=SYSDA,SPACE=(460,(350,100))
//SYSUT2 DD
UNIT=SYSDA,SPACE=(460,(350,100))
//SYSUT3 DD
UNIT=SYSDA,SPACE=(460,(350,100))
//SYSUT4 DD
UNIT=SYSDA,SPACE=(460,(350,100))
//SYSUT5 DD
UNIT=SYSDA,SPACE=(460,(350,100))
//SYSUT6 DD
UNIT=SYSDA,SPACE=(460,(350,100))
//SYSUT7 DD
UNIT=SYSDA,SPACE=(460,(350,100))
//*
//COPYLINK EXEC
PGM=IEBGENER,COND=(7,LT,COB)
//SYSUT1 DD
DSN=CICSTS23.CICS.SDFHSAMP(DFHEILID),DISP=SHR
//SYSUT2 DD
DSN=&©LINK,DISP=(NEW,PASS),
//
DCB=(LRECL=80,BLKSIZE=400,RECFM=FB),
//
UNIT=SYSDA,SPACE=(400,(20,20))
//SYSPRINT DD
SYSOUT=&OUTC
//SYSIN DD
DUMMY
//*
//LKED EXEC
PGM=IEWL,REGION=4M,
//
PARM='LIST,XREF',COND=(5,LT,COB)
//SYSLIB DD
DSN=CICSTS23.CICS.SDFHLOAD,DISP=SHR
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page45
/45
// DD
DSN=CEE.SCEELKED,DISP=SHR
//SYSLMOD DD
DSN=&LOADLIB,DISP=SHR
//SYSUT1 DD
UNIT=SYSDA,DCB=BLKSIZE=1024,
//
SPACE=(1024,(200,20))
//SYSPRINT DD
SYSOUT=&OUTC
//SYSLIN DD
DSN=&©LINK,DISP=(OLD,DELETE)
// DD
DSN=&&LOADSET,DISP=(OLD,DELETE)
// DD
DDNAME=SYSIN
//IND220SO JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//***************************************************
//JOBPROC JCLLIB
ORDER=IND120.INDUS.PROCLIB
//CICSMAP EXEC
CICSMAP,
//
OUTC=*,
// COPYLIB=IND220.INDUS.COPYLIB, *CICS MAP
COPYLIB
//
LOADLIB=IND220.INDUS.LOADLIB,
// MAPNAME=MENSET1 *NAME OF
MAPSET
//COPY.SYSUT1 DD
DSN=IND220.INDUS.MAPLIB(ANIL1),DISP=SHR
//
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page46
/46
//SYSIN DD
DUMMY
//*SYSUT1 DD * NEEDED FOR THE MAP
SOURCE
//ASMMAP EXEC
PGM=&ASMBLR,REGION=®,
//* NOLOAD CHANGED TO
NOOBJECT
//
PARM='SYSPARM(&A.MAP),DECK,NOOBJECT'
//SYSPRINT DD
SYSOUT=&OUTC
//SYSLIB DD
DSN=&INDEX..SDFHMAC,DISP=SHR
// DD
DSN=SYS1.MACLIB,DISP=SHR
//SYSUT1 DD
UNIT=&WORK,SPACE=(CYL,(5,5))
//SYSUT2 DD
UNIT=&WORK,SPACE=(CYL,(5,5))
//SYSUT3 DD
UNIT=&WORK,SPACE=(CYL,(5,5))
//SYSPUNCH DD
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page47
/47
DSN=&&MAP,DISP=(,PASS),UNIT=&WORK,
//
DCB=(RECFM=FB,LRECL=80,BLKSIZE=400),
//
SPACE=(400,(50,50))
//SYSIN DD
DSN=&&TEMPM,DISP=(OLD,PASS)
//LINKMAP EXEC
PGM=IEWL,PARM='LIST,LET,XREF,RMODE(&RMODE)'
//SYSPRINT DD
SYSOUT=&OUTC
//SYSLMOD DD
DSN=&LOADLIB(&MAPNAME),DISP=SHR
//SYSUT1 DD
UNIT=&WORK,SPACE=(1024,(20,20))
//SYSLIN DD
DSN=&&MAP,DISP=(OLD,DELETE)
//* NOLOAD CHANGED TO
NOOBJECT
//ASMDSECT EXEC
PGM=&ASMBLR,REGION=®,
//
PARM='SYSPARM(&A.DSECT),DECK,NOOBJECT'
//SYSPRINT DD
SYSOUT=&OUTC
//SYSLIB DD
DSN=&INDEX..SDFHMAC,DISP=SHR
// DD
DSN=SYS1.MACLIB,DISP=SHR
//SYSUT1 DD
UNIT=&WORK,SPACE=(CYL,(5,5))
//SYSUT2 DD
UNIT=&WORK,SPACE=(CYL,(5,5))
//SYSUT3 DD
UNIT=&WORK,SPACE=(CYL,(5,5))
//SYSPUNCH DD
DSN=©LIB(&MAPNAME),DISP=OLD
//SYSIN DD
DSN=&&TEMPM,DISP=(OLD,DELETE)
//IND220SO JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//***************************************************
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page48
/48
//JOBPROC JCLLIB
ORDER=IND120.INDUS.PROCLIB
//DB2CICS EXEC
DB2CICS,
//
DBRMLIB='IND220.INDUS.DBRMLIB',
//
DB2COPY='IND220.INDUS.COPYLIB',
//
COPYLIB='IND220.INDUS.COPYLIB',
//
LOADLIB='IND220.INDUS.LOADLIB',
// MEM=CICDB202 * SHOULD BE SAME AS PROGRAM
NAME
//SYSIN DD
DSN=IND220.INDUS.DB2(CICDB202),DISP=SHR
//LKED.SYSIN DD
*
INCLUDE
SYSLIB(DSNCLI)
NAME
CICDB202(R)
//
compile procedure
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page49
/49
//DB2COB EXEC
PGM=DSNHPC,PARM='HOST(IBMCOB),NOSOURCE,APOST,APOSTSQL',
//
REGION=2M
//******************************************************************
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page50
/50
***
//* PRECOMPILE THE COBOL PROGRAM FOR
DB2
//******************************************************************
***
//STEPLIB DD
DISP=SHR,DSN=DSN710.SDSNEXIT
// DD
DISP=SHR,DSN=DSN710.SDSNLOAD
//SYSLIB DD
DSN=&DB2COPY,DISP=SHR
//SYSCIN DD
DSN=&&DSNHOUT,DISP=(MOD,PASS),
//
UNIT=SYSDA,SPACE=(800,(400,400),,,ROUND)
//DBRMLIB DD
DSN=&DBRMLIB(&MEM),DISP=SHR
//SYSPRINT DD
SYSOUT=&OUTC
//SYSTERM DD
SYSOUT=*
//SYSUDUMP DD
SYSOUT=*
//SYSUT1 DD
SPACE=(800,(400,400),,,ROUND),UNIT=SYSDA
//SYSUT2 DD
SPACE=(800,(400,400),,,ROUND),UNIT=SYSDA
//*
//TRN EXEC
PGM=DFHECP1$,
//
COND=(4,LT,DB2COB),
//
PARM='COBOL3',
//
REGION=2M
//STEPLIB DD
DSN=CICSTS23.CICS.SDFHLOAD,DISP=SHR
//SYSIN DD
DSN=&&DSNHOUT,DISP=(OLD,DELETE)
//SYSPRINT DD
SYSOUT=&OUTC
//SYSPUNCH DD
DSN=&&SYSCIN,
//
DISP=(,PASS),UNIT=SYSDA,
//
DCB=BLKSIZE=400,
//
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page51
/51
SPACE=(400,(400,100))
//*
//COB EXEC
PGM=IGYCRCTL,REGION=2M,
//
PARM='NODYNAM,LIB,OBJECT,RENT,APOST,MAP,XREF'
//STEPLIB DD
DSN=IGY.SIGYCOMP,DISP=SHR
//SYSLIB DD
DSN=©LIB,DISP=SHR
// DD
DSN=CICSTS23.CICS.SDFHCOB,DISP=SHR
//SYSPRINT DD
SYSOUT=&OUTC
//SYSIN DD
DSN=&&SYSCIN,DISP=(OLD,DELETE)
//SYSLIN DD
DSN=&&LOADSET,DISP=(MOD,PASS),
//
UNIT=SYSDA,SPACE=(80,(250,100))
//SYSUT1 DD
UNIT=SYSDA,SPACE=(460,(350,100))
//SYSUT2 DD
UNIT=SYSDA,SPACE=(460,(350,100))
//SYSUT3 DD
UNIT=SYSDA,SPACE=(460,(350,100))
//SYSUT4 DD
UNIT=SYSDA,SPACE=(460,(350,100))
//SYSUT5 DD
UNIT=SYSDA,SPACE=(460,(350,100))
//SYSUT6 DD
UNIT=SYSDA,SPACE=(460,(350,100))
//SYSUT7 DD
UNIT=SYSDA,SPACE=(460,(350,100))
//*
//COPYLINK EXEC
PGM=IEBGENER,COND=(7,LT,COB)
//SYSUT1 DD
DSN=CICSTS23.CICS.SDFHSAMP(DFHEILID),DISP=SHR
//SYSUT2 DD
DSN=&©LINK,DISP=(NEW,PASS),
//
DCB=(LRECL=80,BLKSIZE=400,RECFM=FB),
//
UNIT=SYSDA,SPACE=(400,(20,20))
//SYSPRINT DD
SYSOUT=&OUTC
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page52
/52
//SYSIN DD
DUMMY
//*
//*
//LKED EXEC
PGM=IEWL,REGION=2M,
//
PARM='LIST,XREF',COND=(5,LT,COB)
//SYSLIB DD
DSN=CICSTS23.CICS.SDFHLOAD,DISP=SHR
// DD
DSN=CEE.SCEELKED,DISP=SHR
// DD
DSN=&LOADLIB,DISP=SHR
// DD
DSN=DSN710.SDSNEXIT,DISP=SHR
// DD
DSN=DSN710.SDSNLOAD,DISP=SHR
//SYSLMOD DD
DSN=&LOADLIB,DISP=SHR
//SYSUT1 DD
UNIT=SYSDA,DCB=BLKSIZE=1024,
//
SPACE=(1024,(200,20))
//SYSPRINT DD
SYSOUT=&OUTC
//SYSLIN DD
DSN=&©LINK,DISP=(OLD,DELETE)
// DD
DSN=&&LOADSET,DISP=(OLD,DELETE)
// DD
DDNAME=SYSIN
Bind JCL:
//IND220SO JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//***************************************************
//JOBLIB DD
DISP=SHR,DSN=DSN710.SDSNEXIT
// DD
DISP=SHR,DSN=DSN710.SDSNLOAD
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page53
/53
// DD
DISP=SHR,DSN=CEE.SCEERUN
//BINDPLAN EXEC
PGM=IKJEFT01,DYNAMNBR=20
//DBRMLIB DD
DSN=IND220.INDUS.DBRMLIB,DISP=SHR
//SYSTSPRT DD
SYSOUT=*
//SYSTSPRT DD
SYSOUT=*
//SYSPRINT DD
SYSOUT=*
//SYSUDUMP DD
SYSOUT=*
//SYSOUT DD
SYSOUT=*
//SYSTSIN DD * PLAN,DBRM AND PROGRAM NAMES SHOULD BE
SAME
DSN
SYSTEM(DSN)
BIND PLAN(CICDB202) MEMBER(CICDB202) ACT(REP) ISOLATION(CS) -
QUALIFIER(IND220)
OWNER(IND220)
END
//
//
//IND220SO JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//**********************************************************
//JOBPROC JCLLIB
ORDER=IND120.INDUS.PROCLIB
//DB2ICOB EXEC
PRECLINK,
//
COPYLIB='IND220.SREE.DCLGEN',
//
DBRMLIB='IND220.SREE.DBRMLIB',
//
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page54
/54
LOADLIB='IND220.SREE.LOADLIB',
//
MEM=INSPGM,
//
LMOD=INSPGM
//SYSIN DD
DSN=IND220.SREE.DB2(INSPGM),DISP=SHR
//LKED.SYSIN DD
*
INCLUDE
SYSLIB(DSNELI)
/*
//
compile procedure:
//DB2COB PROC
MEM=TEMPNAME,
//
COPYLIB=JCLERROR,
//
DBRMLIB=JCLERROR,
//
LOADLIB=JCLERROR,
//
LMOD=JCLERROR,
//
WSPC=500,LNGPRFX='IGY',
// LIBPRFX='CEE' *QUALIFIER FOR
LE/390
//******************************************************************
**
//* PRECOMPILE THE IBM COBOL PROGRAM
*
//******************************************************************
**
//PC EXEC
PGM=DSNHPC,
//
PARM='HOST(COBOL),SOURCE'
//DBRMLIB DD
DSN=&DBRMLIB(&MEM),DISP=SHR
//STEPLIB DD
DISP=SHR,DSN=DSN710.SDSNEXIT
// DD
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page55
/55
DISP=SHR,DSN=DSN710.SDSNLOAD
//SYSLIB DD
DSN=©LIB,DISP=SHR
//SYSCIN DD
DSN=&&DSNHOUT,DISP=(MOD,PASS),UNIT=SYSDA,
//
SPACE=(800,(&WSPC,&WSPC))
//SYSPRINT DD
SYSOUT=*
//SYSTERM DD
SYSOUT=*
//SYSUDUMP DD
SYSOUT=*
//SYSUT1 DD
SPACE=(800,(&WSPC,&WSPC),,,ROUND)
//SYSUT2 DD
SPACE=(800,(&WSPC,&WSPC),,,ROUND)
//******************************************************************
**
//* COMPILE THE IBM COBOL PROGRAM IF THE PRECOMPILE
*
//* RETURN CODE IS 4 OR LESS.
*
//******************************************************************
**
//COB EXEC
PGM=IGYCRCTL,
//
PARM='APOST',
//
COND=(4,LT,PC)
//STEPLIB DD
DSN=&LNGPRFX..SIGYCOMP,DISP=SHR
//SYSPRINT DD
SYSOUT=*
//SYSTERM DD
SYSOUT=*
//SYSLIB DD
DSN=©LIB,DISP=SHR
//SYSLIN DD
DSN=&&LOADSET,DISP=(MOD,PASS),
//
SPACE=(800,(&WSPC,&WSPC))
//SYSIN DD
DSN=&&DSNHOUT,DISP=(OLD,DELETE)
//SYSUT1 DD
SPACE=(800,(&WSPC,&WSPC),,,ROUND)
//SYSUT2 DD
SPACE=(800,(&WSPC,&WSPC),,,ROUND)
//SYSUT3 DD
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page56
/56
SPACE=(800,(&WSPC,&WSPC),,,ROUND)
//SYSUT4 DD
SPACE=(800,(&WSPC,&WSPC),,,ROUND)
//SYSUT5 DD
SPACE=(800,(&WSPC,&WSPC),,,ROUND)
//SYSUT6 DD
SPACE=(800,(&WSPC,&WSPC),,,ROUND)
//SYSUT7 DD
SPACE=(800,(&WSPC,&WSPC),,,ROUND)
//******************************************************************
**
//* LINKEDIT IF THE PRECOMPILE AND COMPILE
*
//* RETURN CODES ARE 4 OR LESS.
*
//******************************************************************
**
//LKED EXEC
PGM=IEWL,
//
COND=((4,LT,PC),(4,LT,COB))
//SYSLIB DD
DSN=&LIBPRFX..SCEELKED,DISP=SHR
// DD
DISP=SHR,DSN=DSN710.SDSNLOAD
//SYSLIN DD
DSN=&&LOADSET,DISP=(OLD,DELETE)
// DD
DDNAME=SYSIN
//SYSLMOD DD
DSN=&LOADLIB(&LMOD),DISP=SHR
//SYSPRINT DD
SYSOUT=*
//SYSUT1 DD
SPACE=(1024,(50,50))
Bind jcl:
//IND220SO JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//******************************************************
//JOBLIB DD
DISP=SHR,DSN=DSN710.SDSNEXIT
// DD
DISP=SHR,DSN=DSN710.SDSNLOAD
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page57
/57
// DD
DISP=SHR,DSN=CEE.SCEERUN
//BINDPLAN EXEC
PGM=IKJEFT01,DYNAMNBR=20
//DBRMLIB DD
DSN=IND220.SREE.DBRMLIB,DISP=SHR
//SYSTSPRT DD
SYSOUT=*
//SYSTSPRT DD
SYSOUT=*
//SYSPRINT DD
SYSOUT=*
//SYSUDUMP DD
SYSOUT=*
//SYSOUT DD
SYSOUT=*
//******************************************************
ISOLATION(CS)
END
/*
//
//IND220SO JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//******************************************************
//JOBLIB DD
DISP=SHR,DSN=DSN710.SDSNEXIT
// DD
DISP=SHR,DSN=DSN710.SDSNLOAD
// DD
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page58
/58
DISP=SHR,DSN=CEE.SCEERUN
//BINDPLAN EXEC
PGM=IKJEFT01,DYNAMNBR=20
//DBRMLIB DD
DSN=IND220.SREE.DBRMLIB,DISP=SHR
//SYSTSPRT DD
SYSOUT=*
//SYSTSPRT DD
SYSOUT=*
//SYSPRINT DD
SYSOUT=*
//SYSUDUMP DD
SYSOUT=*
//SYSOUT DD
SYSOUT=*
//******************************************************
/*
//
PROCEDURES:
Instream procedures:
//IND220SO JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//***************************************************
//INPROC PROC
//STEP1 EXEC PGM=DISPGM
//STEPLIB DD DSN=IND220.INDUS.LOADLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//
PEND
//STEP2 EXEC PROC=INPROC
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page59
/59
Cataloged procedures:
Cataloged proc is the member in a proc library.
IND220.INDUS.PROCLIB(CATPROC)
//CATPROC PROC
//STEP1 EXEC PGM=DISPGM
//STEPLIB DD DSN=IND220.INDUS.LOADLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
Invoking JCL:
//IND220SO JOB
(123),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//***************************************************
//PROCLIB JCLLIB ORDER=(IND220.INDUS.PROCLIB)
//STEP2 EXEC PROC=CATPROC
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com
Page60
/60
//STEP1.STUDD DD DSN=IND220.INDUS.STUDENT.PSFILE.TST5
//
cataloged procedure:
//CATOVER PROC
//STEP1 EXEC PGM=SEQWRI
//STEPLIB DD DSN=IND220.INDUS.LOADLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//STUDD DD DSN=IND220.INDUS.STUDENT.PSFILE.TST,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(&UNI,(&PRI,&SEC),RLSE),
// UNIT=SYSDA,
// DCB=(DSORG=PS,RECFM=FB,LRECL=44,BLKSIZE=440)
//SYSIN DD DSN=IND220.INDUS.CTLCARDS(CTL90),DISP=SHR
KL-
TVM-
CDAC-
IMAI
NFRAME–s
ugumar
.ne
t@gmai
l.
com