10/26/2015 3 er/corp/crs/os02/003-3 jcl day 3. 10/26/2015 4 er/corp/crs/os02/003-3 procedures it is...

32
07/04/2 2 1 ER/CORP/CRS/OS02/003-3 JCL DAY 3

Upload: james-owen

Post on 13-Jan-2016

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 1

ER/CORP/CRS/OS02/003-3

JCL

DAY 3

Page 2: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 2

ER/CORP/CRS/OS02/003-3

PROCEDURES

It is a prepacked JCL.

JCL needed by many different users

A JCL executed on a repetitive basis

JCL often repeated within the execution of a single job

Page 3: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 3

ER/CORP/CRS/OS02/003-3

TYPE OF PROCEDURES

• In-stream procedures Coded in the executing job max of 15 per JOB

• Catalogued Procedure Member of a PDS (procedure library) max 255 steps

Page 4: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 4

ER/CORP/CRS/OS02/003-3

Invoking a Procedure

// EXEC procname

// EXEC PROC=procname

eg:

//name1 EXEC MYPROC

//name1 EXEC PROC=MYPROC

Page 5: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 5

ER/CORP/CRS/OS02/003-3

JCLLIBSpecifies the names of the private libraries the system is to search for:Procedures named on any EXEC statement

JCL referenced by the INCLUDE statement (after release 4)

ex: // INCLUDE MEMBER=MYJCL

• The JCLLIB statement must be placed before the first EXEC

statement in the job

// [name] JCLLIB ORDER=(library[,library]....)//MYLIB JCLLIB ORDER=(MYPROC.JCL.PROCLIB,// MYPROC.JCL.PROCLIB1)

Page 6: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 6

ER/CORP/CRS/OS02/003-3

PROCEDURES must not contain :

1) JOB statement X 2) EXEC statement invoking a procedure 3) JOBLIB DD statement 4) DD * , DD DATA - In-stream data 5) /* delimiter statement 6) // Null statement 7) JES statements 8) PEND statement (for cataloged procedures)

Page 7: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 7

ER/CORP/CRS/OS02/003-3

CATALOGED PROCEDURE

• It must be a member of PDS

• PEND statement is not permitted

• It can have a maximum of 255 steps

• The name of the library (PDS) should be specified

if cataloged library is not in the system defined

library (SYS1.PROCLIB) using JES JOBPARM

statement or JCLLIB statement

Page 8: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 8

ER/CORP/CRS/OS02/003-3

In-stream procedure

• It must begin with a PROC statement and end with a PEND

statement

• It should be coded before the first EXEC statement invoking

the instream procedure

000100 //INF62441 JOB (AMLAN),NOTIFY=INF6244,CLASS=A 000210 //PROC1 PROC 000220 //STEP2 EXEC PGM=IEFBR14 000300 //DD1 DD DSN=&&TEMP,SPACE=(TRK,(1,1)), 000400 // DCB=(RECFM=FB,BLKSIZE=800,LRECL=80),VOL=SER=INUSR3, 000500 // DISP=(NEW,KEEP),UNIT=SYSDA 000600 // PEND 000610 //STEP1 EXEC PROC1 000700 /*

Page 9: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 9

ER/CORP/CRS/OS02/003-3

Cataloged procedure• It must begin with a PROC statement and must not contain a

PEND statement

• It must be cataloged in order to access it that is it must be a

member of a PDS.

000100 //INF62441 JOB (AMLAN),NOTIFY=INF6244,CLASS=A 000110 //LIB1 JCLLIB ORDER=(INF6244.JCL.SOURCE) 000260 //STEP1 EXEC MYPROC

000200 //MYPROC PROC 000210 //STEP2 EXEC PGM=IEFBR14 000220 //DD1 DD DSN=&&TEMP,SPACE=(TRK,(1,1)), 000230 // DCB=(RECFM=FB,BLKSIZE=800,LRECL=80),VOL=SER=INUSR3, 000240 // DISP=(NEW,KEEP),UNIT=SYSDA

• Cataloged procedure:

• Cataloged procedure called through a JCL :

Page 10: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 10

ER/CORP/CRS/OS02/003-3

Questions ??

If a JCL has two an instream procedure and a cataloged procedure with the same name which one will be executed ?

000100 //INF62441 JOB (AMLAN),NOTIFY=INF6244,CLASS=A 000110 //LIB1 JCLLIB ORDER=(INF6244.JCL.SOURCE) 000120 //MYPROC PROC 000130 //STEP1 EXEC PGM=IEFBR14 000140 //DD1 DD DSN=INF6244.TEST.CAT,SPACE=(TRK,(1,1)), 000150 // DCB=(RECFM=FB,BLKSIZE=800,LRECL=80),VOL=SER=INUSR3,000160 // DISP=(NEW,DELETE),UNIT=SYSDA 000170 // PEND 000180 //STEP1 EXEC MYPROC 000190 /*

Answer :Instream procedure will be executed

Page 11: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 11

ER/CORP/CRS/OS02/003-3

Questions ??

If a JCL has two an instream procedure and a cataloged procedure with the same name which one will be executed ?

000100 //INF62441 JOB (AMLAN),NOTIFY=INF6244,CLASS=A 000110 //LIB1 JCLLIB ORDER=(INF6244.JCL.SOURCE) 000111 //STEP1 EXEC MYPROC 000120 //MYPROC PROC 000130 //STEP1 EXEC PGM=IEFBR14 000140 //DD1 DD DSN=INF6244.TEST.CAT,SPACE=(TRK,(1,1)), 000150 // DCB=(RECFM=FB,BLKSIZE=800,LRECL=80),VOL=SER=INUSR3,000160 // DISP=(NEW,DELETE),UNIT=SYSDA 000170 // PEND 000190 /*

Answer :Cataloged procedure will be executed

Page 12: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 12

ER/CORP/CRS/OS02/003-3

Questions ??

Is the JCL given below correct? Yes/No , Justify your answer ?

000100 //INF62441 JOB (AMLAN),NOTIFY=INF6244,CLASS=A 000110 //LIB1 JCLLIB ORDER=(INF6244.JCL.SOURCE) 000111 //TEST PROC 000112 //STEP1 EXEC MYPROC 000113 // PEND 000114 //STEP1 EXEC TEST 000115 /*

Restriction relieve:Procedure can have a exec statement calling another procedure

Page 13: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 13

ER/CORP/CRS/OS02/003-3

Nested Procedures

• Cataloged and In-stream procedure can invoke other procedure ( up to 15 level)

• An In-stream procedure cannot be defined within

another procedure

Page 14: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 14

ER/CORP/CRS/OS02/003-3

Nested Procedures (examples)

000100 //INF62441 JOB (AMLAN),NOTIFY=INF6244,CLASS=A 000110 //LIB1 JCLLIB ORDER=(INF6244.JCL.SOURCE) 000111 //FSTPROC PROC 000112 //STEP1 EXEC MYPROC 000113 // PEND 000114 //SNDPROC PROC 000115 //STEP1 EXEC FSTPROC 000116 // PEND 000120 //STEP1 EXEC SNDPROC 000130 /*

• SNDPROC is called first which calls FSTPROC which initiates cataloged procedure MYPROC

Page 15: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 15

ER/CORP/CRS/OS02/003-3

Nested Procedures (examples)

• NSTPROC 000200 //NSTPROC PROC 000201 //STEP1 EXEC PGM=IEFBR14

• MYPROC 000200 //MYPROC PROC 000201 //STEP1 EXEC NESTPROC 000210 //STEP2 EXEC PGM=IEFBR14,COND=(0,NE) 000220 //DD1 DD DSN=&&TEMP,SPACE=(TRK,(1,1)), 000230 // DCB=(RECFM=FB,BLKSIZE=800,LRECL=80), 000231 // VOL=SER=INUSR3, 000240 // DISP=(NEW,KEEP),UNIT=SYSDA

• CALLJCL

000100 //INF62441 JOB (AMLAN),NOTIFY=INF6244,CLASS=A 000110 //LIB1 JCLLIB ORDER=(INF6244.JCL.SOURCE) 000260 //STEP1 EXEC MYPROC

Page 16: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 16

ER/CORP/CRS/OS02/003-3

Identifying procedure statements injob’s JCL listing

Identifier Identifier MeaningFor In stream for CataloguedProcedure procedure

// // Statement from Input JCL++ XX Statement from procedure+/ X/ Procedure statement that you modified++* XX* Procedure statements, other than comment statements that were converted to comments*** *** Comments and JES2/JES3 control statements

Page 17: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 17

ER/CORP/CRS/OS02/003-3

Modifying the Procedure

SYMBOLIC PARAMETERS

OVERRIDING EXEC & DD PARAMETERS

Page 18: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 18

ER/CORP/CRS/OS02/003-3

Symbolic Parameters

Symbolic parameters are variables used in procedures

Syntax - &Varname

Varname - 1-7 character

Value can be specified at :

1) SET statement2) EXEC PROC statement 3) PROC statement

Page 19: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 19

ER/CORP/CRS/OS02/003-3

Symbolic Parameters examples ...

000100 //INF62441 JOB (AMLAN),NOTIFY=INF6244,CLASS=A 000101 //SET1 SET A=INF6244.SYMB.TEST 000107 //STEP1 EXEC PGM=IEFBR14 000109 //DD1 DD DSN=&A,SPACE=(TRK,(1,1)), 000110 // DCB=(RECFM=FB,BLKSIZE=800,LRECL=80),VOL=SER=INUSR3,000120 // DISP=(NEW,DELETE),UNIT=SYSDA

Page 20: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 20

ER/CORP/CRS/OS02/003-3

Symbolic Parameters examples ...

000100 //INF62441 JOB (AMLAN),NOTIFY=INF6244,CLASS=A 000101 //MYPROC PROC A=INF6244.SYMB.TEST 000102 //STEP2 EXEC PGM=IEFBR14 000103 //DD1 DD DSN=&A,SPACE=(TRK,(1,1)), 000104 // DCB=(RECFM=FB,BLKSIZE=800,LRECL=80),VOL=SER=INUSR3, 000105 // DISP=(NEW,DELETE),UNIT=SYSDA 000106 // PEND 000107 //STEP1 EXEC MYPROC

Page 21: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 21

ER/CORP/CRS/OS02/003-3

Question ??

• What will happen if the same symbolic parameters having different values are declared in the PROC, SET statement of the cataloged procedure & SET statement of the calling JCL ?

• State the order of precedence ?

Page 22: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 22

ER/CORP/CRS/OS02/003-3

REFERING BACK AND MODIFYING(examples)

000100 //INF62441 JOB (AMLAN),NOTIFY=INF6244,CLASS=A 000102 //STEP1 EXEC PGM=IEFBR14 000103 //DD1 DD DSN=INF6244.TEST.PS1,SPACE=(TRK,(1,1)), 000104 // DCB=(RECFM=FB,BLKSIZE=800,LRECL=80),VOL=SER=INUSR3, 000105 // DISP=(NEW,DELETE),UNIT=SYSDA 000106 //DD2 DD DSN=INF6244.TEST.PS2,SPACE=(TRK,(1,1)), 000107 // DCB=*.DD1,VOL=SER=INUSR3, 000108 // DISP=(NEW,DELETE),UNIT=SYSDA

Page 23: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 23

ER/CORP/CRS/OS02/003-3

REFERING BACK AND MODIFYING(examples)

000100 //INF62441 JOB (AMLAN),NOTIFY=INF6244,CLASS=A 000101 //STEP1 EXEC PGM=IEFBR14 000102 //DD1 DD DSN=INF6244.TEST.PS1,SPACE=(TRK,(1,1)), 000103 // DCB=(RECFM=FB,BLKSIZE=800,LRECL=80),VOL=SER=INUSR3,000104 // DISP=(NEW,CATLG),UNIT=SYSDA 000105 //STEP2 EXEC PGM=IEFBR14 000106 //DD1 DD DSN=*.STEP1.DD1,SPACE=(TRK,(1,1)), 000107 // DCB=*.STEP1.DD1,VOL=SER=INUSR3, 000108

Page 24: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 24

ER/CORP/CRS/OS02/003-3

Questions ??

• Can all the parameters of DD statement refer back. Discuss ?

Page 25: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 25

ER/CORP/CRS/OS02/003-3

IBM UTILITY PROGRAMS

Provides a variety of useful function like

• Copying a member/data set

• Listing

• Maintaining source libraries etc.

• MVS provides a number of pre-written utility programs that can be used by analysts, system programmers, and application programmers to assist them in maintaining and organizing data.

Page 26: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 26

ER/CORP/CRS/OS02/003-3

UTILITY PROGRAMS

SYSTEM UTILITY

• IEHATLAS

• IEHINITT

• IEHMOVE

• IEHPROGM

• IFHSTATR

DATA SET UTILITY

• IEBCOMPR

• IEBCOPY

• IEBDG

• IEBEDIT

• IEBGENER

• IEBISAM

Page 27: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 27

ER/CORP/CRS/OS02/003-3

GENERAL FORMAT FOR IEBXXXX

//STEP EXEC PGM=IEBxxxx

//SYSPRINT DD -message data set ,no DCB

//SYSIN DD -control information for utility

//SYSUT1 DD -input data set

//SYSUT2 DD -output dataset

Page 28: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 28

ER/CORP/CRS/OS02/003-3

IEBGENER utility

• It is used to copy one sequential file to another.

000001 //INF6244B JOB CLASS=A,NOTIFY=INF6244 000002 //STEP1 EXEC PGM=IEBGENER 000003 //SYSPRINT DD SYSOUT=* 000004 //SYSUT2 DD DSN=INF6244.IEBGENER.NEWPS, 000005 // VOL=SER=INUSR2,SPACE=(TRK,(1,1)), 000006 // DCB=(RECFM=FB,LRECL=80,BLKSIZE=800), 000007 // DISP=(NEW,CATLG) 000008 //SYSUT1 DD DSN=INF6244.INPUT.JCLPS1,DISP=SHR 000009 //SYSIN DD DUMMY

Page 29: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 29

ER/CORP/CRS/OS02/003-3

IEBCOPY

• To copy PDS on to DASD

• To copy PDS on to Tapes by converting it to sequential dataset etc

000001 //INF6244A JOB NOTIFY=INF6244 000002 //STEP1 EXEC PGM=IEBCOPY 000003 //SYSPRINT DD SYSOUT=A 000004 //SYSUT1 DD DSN=INF6244.JCL.SOURCE,DISP=SHR 000005 //SYSUT2 DD DSN=INF6244.IEBCOPY.PDS, 000006 // VOL=SER=INUSR2,SPACE=(TRK,(5,5,8)), 000007 // DCB=(RECFM=FB,LRECL=80,BLKSIZE=800), 000008 // DISP=(NEW,CATLG) 000009 //SYSIN DD * 000010 COPY INDD=SYSUT1,OUTDD=SYSUT2 000011 /*

Page 30: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 30

ER/CORP/CRS/OS02/003-3

IEHPROGM PROGRAM

• SCRATCHES– RENAMES– CATALOGS

• UNCATALOGS

UTILITY CONTROL STATEMENTS

SCRATCH DSNAME=dsname,VOL=device=serial

UNCATLG DSNAME=dsname

Page 31: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 31

ER/CORP/CRS/OS02/003-3

IEHLIST PROGRAM

• LIST CATALOG• LIST PDS• LIST VTOC

UTILITY CONTROL STATEMENT

LISTPDS DSNAME=dsname, x VOL=device=serial,format

LISTVTOC DSNAME=dsname, x VOL=device=serial,format

Page 32: 10/26/2015 3 ER/CORP/CRS/OS02/003-3 JCL DAY 3. 10/26/2015 4 ER/CORP/CRS/OS02/003-3 PROCEDURES It is a prepacked JCL. JCL needed by many different users

04/21/23 32

ER/CORP/CRS/OS02/003-3

That’s all for

DAY

3