640 likes | 1.03k Views
12. IBM OS/JCL: DD Statements. //TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP) The DD Statement: Defines a data set to the operating system. Notifies the operating system that a data set is to be either accessed or created.
E N D
12 IBM OS/JCL: DD Statements
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP) • The DD Statement: • Defines a data set to the operating system. • Notifies the operating system that a data set is to be either accessed or created. • Identifies the device requirements of the data set: • Type of I/O unit required. • Specific volumes to be mounted on the unit.
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP) • The DD Statement: • Further defines characteristics of the data set • The length of each record; • The format of the record; • Whether the data set already exists or is to be created during the job step. • Specifies what is to be done with the data set when the job completes.
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP) • DDNAME - one to eight alphanumeric characters. The first character must be alphabetic. • The DDNAME comes from the External Reference name in the SELECT Clause of the ENVIRONMENT DIVISION of a COBOL program.
INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT CARD-FILE ASSIGN UR-2540R-S-CARDIN. SELECT PRINT-FILE ASSIGN UR-3203-S-PRTFLE. SELECT TAPE-IN ASSIGN UT-3420-S-TPEIN. SELECT TAPE-OUT ASSIGN UT-3420-S-TPEOUT. SELECT DISK-IN ASSIGN DA-3375-S-DSKIN. SELECT DISK-OUT ASSIGN DA-3375-S-DSKOUT. DATA DIVISION. 01 CARD-FILE. 05 EMP-NO PIC X(5) 05 EMP-NAME. 10 EMP-LAST PIC X(25). 10 EMP-FIRST PIC X(25). 10 EMP-MIDDLE PIC X.
//TPEIN DDUNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP) • DD – Operation - Data Definition
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP) • UNIT - Identifies the data set as a tape file
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP) • DSN (DSNAME) – • Data Set Name • Identifies the name of the file as recorded in the header label when the file was created.
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP), // VOL=SER=2992 • DISP - Identifies the status of the data set: • Subparameter 1 - at the beginning of the job step; • Subparameter 2 - If the job step terminates normally; • Subparameter 3 - If the job step terminates abnormally.
Fig. 12.6: The disposition (DISP) parameter specifies the file’s status.
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP), // VOL=SER=2992 • DISP - Identifies the status of the data set: • Subparameter 1 - at the beginning of the job step;
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP)NEW,DELETE,DELETESHR ,PASS,CATLG,CATLG,UNCATLG ,UNCATLG, • OLD - The data set was created in an earlier job or job step. • NEW - The data set is being created in the current job step.
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP), // VOL=SER=2992 • DISP - Identifies the status of the data set: • Subparameter 2 - If the job step terminates normally;
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP)NEW,DELETE,DELETESHR ,PASS,CATLG,CATLG,UNCATLG ,UNCATLG, • KEEP - The data set is to be saved for future use. • DELETE - The data set is scratched. • PASS - The data set will remain mounted. • CATLG - The data set cataloged to the Tape Library. • UNCATLG - The data set is uncataloged from the Tape Library.
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP), // VOL=SER=2992 • DISP - Identifies the status of the data set: • Subparameter 3 - If the job step terminates abnormally.
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP)NEW,DELETE,DELETESHR ,PASS,CATLG,CATLG,UNCATLG ,UNCATLG, • KEEP - The data set is to be saved for future use. • DELETE - The data set is scratched. • CATLG - The data set cataloged to the Tape Library. • UNCATLG - The data set is uncataloged from the Tape Library.
Common sense dictates://TPEIN DD UNIT=TAPE,DSN=PR.FLE,// DISP=(OLD,KEEP,KEEP)
Common sense dictates: //TPEIN DD UNIT=TAPE,DSN=PR.FLE,// DISP=(NEW,CATLG,DELETE)
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP), // VOL=SER=299221
//TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP), // DCB=(RECFM=FB,LRECL=300,BLKSIZE=600) • DCB Parameter - supplies data set characteristics to be included in the data control block. • RECFM – Record Format • LRECL – Logical Record Length • BLKSIZE – Block Size22
Fig. 12.5: The DCB parameter. TheDSORG, MACRF, and DDNAME must be coded in the program DCB.
//DISKIN DD UNIT=DISK,DSN=PR.FLE,SYSDA • UNIT - Identifies the data set as a disk file
//DISKIN DD UNIT=DISK,DSN=PR.FLE, SYSDA &&PR.FLE • DSN (DSNAME) – • Data Set Name • Identifies the name of the file as recorded in the header label when the file was created. • && used to indicate a temporary data set
//DISKOUT DD UNIT=DISK,DSN=PR.FLE, SYSDA // SPACE=(TRK,(10,10),RLSE,CONTIG),CYL,BLKSIZE, // DISP=(NEW,CATLG,DELETE) • Type of space allocation • Primary Allocation • Secondary Allocation • Release Any Unused Space • All Space Must Be Contiguous
//DISKIN DD UNIT=DISK,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP)NEW,DELETE,DELETESHR ,PASS,CATLG,CATLG,UNCATLG ,UNCATLG, • OLD - The data set was created in an earlier job or job step. • NEW - The data set is being created in the current job step. • SHR - The input data set will be shared by another job.
//SYSIN DD * • Allows a file to be inputted via the system’s default input device. • The asterisk indicates that the data follows this DD statement.31
//SYSOUT DD SYSOUT=A • Allows a file to be outputted to the system’s default output device. • Normally implies printer output. • The value of SYSOUT is dependent upon your installation.32
//DISKIN DD DUMMY • Allows a file to be ignored, or dummyed out. This process will be allowed as long as the logic of the program will allow the file to be dummyed out.33
//DISKIN DD UNIT=DISK,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP),34
CONCATENATING DATA SETS // INDATA DD DSN=CURORDR,UNIT=TAPE, // VOL=SER=K90221, // DISP=(OLD,KEEP,KEEP) // DD DSN=PREVORDR,UNIT=AFF=INDATA, // VOL=SER=14552,DISP=(OLD,KEEP,KEEP) // DD DSN=INV,UNIT=AFF=INDATA, // VOL=SER=866221,DISP=(OLD,KEEP,KEEP)
Data Control Block Table • As the Job Stream JCL is checked, the information in the DD statements is used to create an entry for the data sets in the DCB Table. • Once the DCB Table is completed, the JCL is then checked for accuracy and validity. • If any errors are discovered, they are documented on the JCL Listing (MSGLEVEL parameter) and the job is not run.
Backward References • Using the DCB Table entries, Backward References (Refer Backs) can take place.
Backward References //OSJCL JOB (OSJCL,’04/03/98’),’M. R. IZZO’, // CLASS =T,MSGLEVEL=(1,1), // MSGCLASS =A //STEP1 EXEC PGM=CALC //DD1 DD UNIT=TAPE,DSN=FILE1, // DISP=(OLD,KEEP,KEEP) //DD2 DD UNIT=TAPE,DSN=FILE2, // DISP=(OLD,KEEP,KEEP) //DD3 DD UNIT=TAPE,DSN=FILE3, // DISP=(NEW,PASS,DELETE)38
//REPORT DD SYSOUT=A //SYSUDUMP DD SYSOUT=J //CRDIN DD * * Card Input * /* //STEP2 EXEC PGM=CALC2 //DD4 DD UNIT=TAPE,DSN=*.STEP1.DD3, // DISP=(OLD,KEEP,KEEP) //REPORT2 DD SYSOUT=A //SYSUDUMP DD SYSOUT=J //
Compiler Return Codes • Level W - Warning - Return Code 4 • Level C - Condition - Return Code 8 • Level E - Errors - Return Code 12 • Level F - Fatal - Return Code 1645
Compile, Link, & Execute //OSJCL JOB (OSJCL,’04/03/98’),’M.R.IZZO’,// CLASS=T,MSGLEVEL=(1,1),// MSGCLASS=A//COB EXEC PGM=IKFCBL00,PARM=‘LOAD’//SYSPRINT DD SYSOUT=A//SYSUT1 DD UNIT=SYSDA,// SPACE=(460,(700,100))//SYSUT2 DD UNIT=SYSDA,// SPACE=(460,(700,100))46
//SYSUT3 DD UNIT=SYSDA,// SPACE=(460,(700,100))//SYSUT4 DD UNIT=SYSDA,// SPACE=(460,(700,100))//SYSLIN DD DSNAME=&&LOADSET,// DISP=(MOD,PASS,DELETE),// UNIT=SYSDA,SPACE=(80,(500,100))//SYSIN DD * * * Source Input/* 47
//LKED EXEC PGM=IEWL, // PARM=(‘LIST,XREF,LET’), // COND=(5,LT,COB) //SYSLIN DD DSN=&&LOADSET, // DISP=(OLD,DELETE,KEEP) //SYSLMOD DD DSN=&&GOSET(GO), // DISP=(NEW,PASS,DELETE), // UNIT=SYSDA, // SPACE=(1024,(50,20,1)) //SYSUT1 DD UNIT=SYSDA, // SPACE=(1028,(50,20)) //SYSPRINT DD SYSOUT=A48
//GO EXEC PGM=*.LKED.SYSLMOD, // COND=((5,LT,COB),(5,LT,LKED)) //TPEIN DD UNIT=TAPE,DSN=PR.FLE, // DISP=(OLD,KEEP,KEEP), // DCB=(RECFM=FB,LRECL=150), // DCB=(BLKSIZE=300), // VOL=SER=00978 //TPEOUT DD UNIT=TAPE,DSN=PR.FLE, // DISP=(NEW,CATLG,DELETE), // DCB=(RECFM=FB,LRECL=150), // DCB=(BLKSIZE=300)49
//DSKIN DD UNIT=DISK,DSN=PR.TRANS, // DISP=(OLD,KEEP,KEEP), // DCB=(RECFM=FB,LRECL=200), // DCB=(BLKSIZE=400) //DSKOUT DD UNIT=DISK,DSN=ED.PR.TRANS, // DISP=(NEW,CATLG,DELETE), // SPACE=(TRK,(10,5),RLSE) //PRT DD SYSOUT=A //SYSUDUMP DD SYSOUT=A //CRDIN DD * * * Card Input /* // 50