JCL Lab PGM
JCL Lab PGM
000400 //SYSUT1 DD *
000500 9837489783784798732984798237489723984798
000510 9837489783784798732984798237489723984798
000600 //SYSUT2 DD SYSOUT=*
000900 //SYSPRINT DD SYSOUT=*
001000 //SYSIN DD DUMMY
001100 //MTPLB22J JOB 379,PGM2,CLASS=A,MSGCLASS=A,
001200 //
MSGLEVEL=(1,1),NOTIFY=MTPLB22
001300 //STEP2 EXEC PGM=IEBGENER
001500 //SYSUT1 DD *
001600 AAAAAAAAAAAAAAAAAAAAAAA
001700 BBBBBBBBBBBBBBBBBBBBBBBB
001800 //SYSUT2 DD SYSOUT=*
002000 //SYSPRINT DD SYSOUT=*
002100 //SYSIN DD DUMMY
---------------------------------------------------------------------------------10.CONCATENATION OF TWO SDS AND PUTTING IT TO A NEW PDS WITH A
NEW MEMBER IN THE PROGRAM.
000100 //MTPLB22J JOB 345,DATACONCAT,CLASS=A,MSGCLASS=A,
000200 //
MSGLEVEL=(1,1),NOTIFY=MTPLB22
000300 //STEP1 EXEC PGM=IEBGENER
000400 //SYSUT1 DD DSN=MTPLB22.UTILITY.TEST,DISP=SHR
000500 // DD DSN=MTPLB22.CON.CON1,DISP=SHR
000600 //SYSUT2 DD
DSN=MTPLB22.OUTPUT.DATCONP(NEW),DISP=(NEW,CATLG,DELETE),
000700 //
SPACE=(TRK,(5,5,1),RLSE),VOL=SER=MTBLR1,
000800 //
DCB=(LRECL=80,BLKSIZE=800,RECFM=FB),UNIT=SYSDA
000900 //SYSPRINT DD SYSOUT=*
001000 //SYSIN DD DUMMY
--------------------------------------------------------------------------------11.CONCATENATION OF TWO PDS AND PUTTING IT TO A NEW PDS WITH A
NEW MEMBER IN THE PROGRAM.
000100 //MTPLB22J JOB 345,DATACONCAT,CLASS=A,MSGCLASS=A,
000200 //
MSGLEVEL=(1,1),NOTIFY=MTPLB22
000300 //STEP1 EXEC PGM=IEBGENER
000400 //SYSUT1 DD DSN=MTPLB22.CON.TEST1(MEM1),DISP=SHR
000500 // DD DSN=MTPLB22.CON.TEST2(MEMA),DISP=SHR
000600 //SYSUT2 DD
DSN=MTPLB22.OUTPUT.DATPDA(NEW),DISP=(NEW,CATLG,DELETE),
000700 //
SPACE=(TRK,(5,5,1),RLSE),VOL=SER=MTBLR1,
000800 //
DCB=(LRECL=80,BLKSIZE=800,RECFM=FB),UNIT=SYSDA
000900 //SYSPRINT DD SYSOUT=*
001000 //SYSIN DD DUMMY
--------------------------------------------------------------------------------12.CONCATENATION OF TWO PDS AND PUTTING IT TO A NEW SDS IN THE
PROGRAM.
000410 //
DD DSN=MTPLB22.CON.TEST1(MEM2),DISP=OLD
000500 //
DD DSN=MTPLB22.UTILITY.TEST,DISP=SHR
000600 //SYSUT2 DD DSN=MTPLB22.OUTPUT.DAT1,DISP=(NEW,CATLG,DELETE),
000700 //
SPACE=(TRK,(5,5,),RLSE),VOL=SER=MTBLR1,
000800 //
DCB=(LRECL=80,BLKSIZE=800,RECFM=FB),UNIT=SYSDA
000900 //SYSPRINT DD SYSOUT=*
001000 //SYSIN DD DUMMY
---------------------------------------------------------------------------------16.CONCATENATION OF PDS HAVING TWO MEMBERS ,AN SDS AND ANOTHER
PDS WITH A MEMBER TO A OLD PDS MEMBER WITH NAME AS
'DATCONP(NEW)'
000100 //MTPLB22J JOB 345,DATACONCAT,CLASS=A,MSGCLASS=A,
000200 //
MSGLEVEL=(1,1),NOTIFY=MTPLB22
000300 //STEP1 EXEC PGM=IEBGENER
000400 //SYSUT1 DD DSN=MTPLB22.CON.TEST1(MEM1),DISP=OLD
000410 //
DD DSN=MTPLB22.CON.TEST1(MEM2),DISP=OLD
000500 //
DD DSN=MTPLB22.UTILITY.TEST,DISP=SHR
000510 //
DD DSN=MTPLB22.CON.TEST2(MEMB),DISP=SHR
000600 //SYSUT2 DD DSN=MTPLB22.OUTPUT.DATCONP(NEW),DISP=OLD
000700 //SYSPRINT DD SYSOUT=*
000800 //SYSIN DD DUMMY
---------------------------------------------------------------------------------17. TO FORMAT THE OUTPUT WITH ITEM HEADING. USING THE IEBPTPCH
KNOW THE USAGE.
000100
000200
000300
000400
000500
000600
000700
000800
000900
001100
001200
001300
18. TO LIST THE VTOC INFORMATION OF THE SPECIFIED VOL SER NUMBER
USING IEHLIST UTILITY.
000100
000200
000300
000400
000500
000600
000700
000810
000900 //
19.TO LIST THE PDS NAME FOR THE SPECIFIED VOL SER NAME.
000100
000200
000300
000400
000500
000600
000700
000800
000900
O/P
DIRECTORY INFO FOR SPECIFIED PDS ON VOL MTBLR1
MTPLB22.DONTDEL.PDS1
MEMBERS
TTRC
VARIABLE USER DATA ---(USER DATA AND TTRC ARE
I------------IELIST 0000290F 0100000701 04070F0104 070F231100 0A000A0000
D4E3D-----------IELISTPD 0001100F 0102002801 04070F0104 070F234600 0900090001
D4E3D----------IEPCH
0000220F 0101005401 04070F0104 070F225900 0C000D0003
D4E3D-----------OF THE 00005 DIRECTORY BLOCKS ALLOCATED TO THIS PDS, 00004 ARE(IS)
COMPLETELY UNUSED
NOTE:'----------' IN THE ABOVE LINE CONVEYS THAT THERE ARE SOME MORE
INFORMATION CONCERNED TO THAT PARTICULAR LINE.
20. TO COPY ONE PDS MEMBERS TO ANOTHER PDS MEMBER USING IEBCOPY
UTILITY.
000100
000200
000300
000400
000500
000600
000700
000800
000900
21.TO COPY A PARTICULAR MEMBER FROM ONE PDS TO ANOTHER PDS USING
IEBCOPY UTILITY
000100 //MTPLB22J JOB ,,CLASS=A,NOTIFY=MTPLB22
000200 //STEP1 EXEC PGM=IEBCOPY
000300 //SYSPRINT DD SYSOUT=*
000400
000500
000600
000700
000710
000800
000900
//INPUT DD DSN=MTPLB22.DONTDEL.PDS1,DISP=SHR
//OUTPUT DD DSN=MTPLB22.HELLO.SOURCE,DISP=SHR
//SYSIN DD *
COPY OUTDD=OUTPUT,INDD=INPUT
SELECT MEMBER=IEBCOPY
/*
//
22.TO COPY A PARTICULAR MEMBER FROM ONE PDS AND FROM THE SAME PDS
IF U WANT TO COPY ANOTHER MEMBER WITH A DIFFERENT NAME THEN THIS
PROGRAM WILL HELP U.
000100
000200
000300
000400
000500
000600
000700
000710
000720
000800
000900
THE SAME PROGRAM CAN BE WRITEN IN THIS FORM ALSO. THE ONLY
DIFFERENT IS HERE WE ARE USING A SINGLE SELECT MEMBER STATEMENT
AND COPYING A MEMBER AND RENAMING A MEMBER AND COPY IT ALSO.
000100
000200
000300
000400
000500
000600
000700
000720
000800
000900
I/P
000001 FIRST
000002 SECOND
000003 THIRD
000004 FOURTH
000005 FIFTH
O/P FOR SORT COMMAND AS 'SORT FIELDS=(1,2,CH,A)
000001 FIRST
000002 FIFTH
000003 FOURTH
000004 SECOND
000005 THIRD
O/P FOR SORT COMMAND AS 'SORT FIELDS=(1,3,CH,A)
000001 FIFTH
000002 FIRST
000003 FOURTH
000004 SECOND
000005 THIRD
NOTE: HERE WE ARE NOT GIVING THE '/*' AND '//' STATEMENTS IN THE
LAST. NOTE THAT THIS ALSO WORKS COZ BY DEFAULT THE SYSTEM WILL
ASSIGN THE END VALUES OF THE JCL.NOT ONLY THIS PROGRAM ANY
PROGRAM WILL WORK LIKE THIS.
28.TO SORT THE RECORDS FROM SEQL1 FILE AND PUT THE OUTPUT IN THE
SEQL2 FILE WHICH IS ALREADY EXISTING. HERE THE SORT IS DONE FROM 1
ST POSITION AND FOR 4 CHARACTERS IT IS SORTED IN THE DESCENDING
ORDER.BUT IN THE ABOVE PROGRAM WE SAW HOW TO PUT THE OUTPUT IN A
NEWLY CREATED SDS FILE.
000100
000200
000300
000400
000500
000510
000900
001000
I/P
000001
000002
000003
000004
000005
FIRST
SECOND
THIRD
FOURTH
FIFTH
29.TO SORT THE RECORDS STARTING FROM THE 3RD POSITION AND SORT
FOR 2 CHARACTERS. IN THIS PROGRAM WE ARE DIVIRTING THE OUTPUT TO
THE OUTPUT SPOOL INSTEAD OF PUTING IT TO A SDS.
000100
000200
000300
000400
000500
000510
000900
001000
I/O
I/P
000001
000002
000003
000004
000005
FIRST
SECOND
THIRD
FOURTH
FIFTH
O/P
TO SEE THE OUTPUT,SINCE WE HAVE DIVERTED IT TO THE OUTPUT SPOOL WE HAVE
TO TYPE THE COMMAND 'TSO SDSF ST' AND THEN SEE IN THE SPOOL.
FOURTH
FIRST
THIRD
FIFTH
SECOND
30.TO KNOW THE USAGE OF MERGE SORT.
000100
000200
000300
000400
000500
000600
000700
000800
000900
001000
001100
I/P
SEQL1.
000001
000002
000003
000004
000005
ELEVEN
FOURTEEN
TEN
THIRTEEN
TWELVE
SEQL2.
000001
000002
000003
000004
000005
FIRST
FIFTH
FOURTH
SECOND
THIRD
IMP NOTE: HERE BOTH THE SORTIN1 AND SORTIN2 FILES SHOULD BE SORTED
IN THE SAME ORDER BEFORE MERGING. IF U SORT 1ST FILE IN ONE ORDER
AND THE OTHER IN THE ANOTHER FORMAT THEN U GET MAXCC=16 OR 20
ERROR.
O/P
ELEVEN
FIRST
FIFTH
FOURTH
FOURTEEN
SECOND
TEN
THIRTEEN
THIRD
TWELVE
31.MERGING TWO FILES HAVING ONLY NUMBERS AS THE INPUT.
000100
000200
000300
000400
000500
000600
000700
000800
000900
001000
001100
I/P
SQL1
000001
000002
000003
000004
000005
SQL2
000001
000002
000003
000004
000005
12
15
19
55
60
10
16
18
23
46
O/P
10
12
15
16
18
19
23
46
55
60
32.THIS PROGRAM SHOWS HOW TO CREATE A SDS USING IN-STREAM
FUNCTION.
000100
000200
000300
000400
000500
000600
000700
000800
001000
001200
001500
33. TO CREATE TWO SDS USING TWO INSTREAM PROCEDURES IN THE SAME
MEMBER
000100
000200
000300
000400
000500
000600
000700
000902
000910
000920
000930
000940
000950
000982
000983
000984
000985
OR
000100 //MTPLB22J JOB ,,NOTIFY=MTPLB22
000200 //INPROC1 PROC
000300
000400
000500
000600
000700
000902
000903
000910
000920
000930
000940
000950
000982
000983
000985
//NEWPROC PROC
//STEP1 EXEC PGM=IEFBR14
//DD1 DD DSN=MTPLB22.DONTDEL.PROC1,DISP=(NEW,CATLG,DELETE),
//
SPACE=(TRK,(5,5)),VOL=SER=MTBLR1,UNIT=SYSDA,
//
DCB=(LRECL=80,BLKSIZE=800,RECFM=FB)
//SYSPRINT DD SYSOUT=*
//
PEND
NOTE : HERE BOTH THE INSTREM PROCEDURES ARE STORED IN THE SAME
PDS. AND THE CATLOG PROCEDURE IS ALSO SAVED IN THE SAME PDS.
O/P : WE HAVE ONE SDS WITH THE NAME MTPLB22.DONTDEL.PROC1 AND ONE PDS
WITH THE NAME MTPLB22.DONTDEL.PROC2
37.HERE WE HAVE STORED NEWPROC IN THE PRESENT PDS AND NEWPROC1
IN A DIFFERENT PROCEDURE I.E. MTPLB22.HELLO.SOURCE.
THE FIRST PROGRAM IS NEWPROC1 STORED IN MTPLB22.DONTDEL.PDS1
000200
000300
000400
000500
000600
000700
000800
000910
//NEWPROC PROC
//STEP1 EXEC PGM=IEFBR14
//DD1 DD DSN=MTPLB22.DONTDEL.PROC1,DISP=(NEW,CATLG,DELETE),
//
SPACE=(TRK,(5,5)),VOL=SER=MTBLR1,UNIT=SYSDA,
//
DCB=(LRECL=80,BLKSIZE=800,RECFM=FB)
//SYSPRINT DD SYSOUT=*
//
PEND
//*INPROC2 PROC
O/P : WE HAVE ONE SDS WITH THE NAME MTPLB22.DONTDEL.PROC1 AND ONE PDS
WITH THE NAME MTPLB22.DONTDEL.PROC2
38.PROGRAM TO OVERRIDE EXEC STATEMENT.HERE WE HAVE AN INSTREAM
PROCEDURE WHICH HAS SOME EXEC PARAMETERS. BUT WHILE CALLING THAT
INSTREAM PROCEDURE WE ARE TRYING TO OVERRIDE THE VALUES DEFINED
IN THAT INSTREAM PROCEDURE.FOR EXAMPLE IN INSTREAM PROCEDURE
OVRPROC IN EXEC STATEMENT
000100
000200
000300
000400
000500
000600
000700
000800
000900
001000