jcl 1.0.doc
TRANSCRIPT
-
8/15/2019 JCL 1.0.doc
1/47
Mainframe Refresher Part-1 JCL-Page:1
JCL (Job Control Language)JCL
Any business application is i!ie into logical moules an these moules are
e!elope using programming languages" #hese programs shoul be e$ecute in apre-efine se%uence to achie!e the business functionality"
JCL (Job Control Language) is use to &'*' an C+*#R+L the J+, to the
operating system"
&efinition in!ol!es efinition of the programs nee to be e$ecute the ata for theprograms an the se%uence of programs" C+*#R+L in!ol!es controlling the
e$ecution or bypassing of a program in the se%uence base on the result of the priorprogram e$ecution"
JCL Coing .heet
1 / 0 11 1 20 34 *AM' +P'RA#+* +P'RA*&.
JCL statements shoul ha!e 55 in column 1 an /" .#AR (676) in the thir columninicates that the line is a comment line"
*AM' is optional fiel" f coe it shoul start at column0 an can ha!e ma$imum 3
characters" #he first character shoul be an alphabet or national character (8 9 or)" Remaining characters can be any alphanumeric or national characters"
+P'RA#+* follo;s *AM' fiel" #here shoul be at least one space bet;een *AM'
an +P'RA#+*" f *AM' is not coe then +P'RA#+* can start at fourth column
itself" #ypical +P'RA#+*
-
8/15/2019 JCL 1.0.doc
2/47
Mainframe Refresher Part-1 JCL-Page:/
Job 'ntry .ubsystem (J'.)
Job 'ntry .ubsystem (J'.) is the Bob processor of M. operating system"M. installation can ha!e either J'./ or J'.0" #he submitte Bobs are ta
-
8/15/2019 JCL 1.0.doc
3/47
Mainframe Refresher Part-1 JCL-Page:0
ser A,'*&(nnnn): Ihen some une$pecte conition occurs in the ata passethe program ;ill call an aben routine an aben the step ;ith proper isplays" #his
is thro;n by application base on the re%uirement"
J+, .tatement
.ample .ynta$:
55J+,*AM' J+, (ACC+*#*G *+) (PR+GRAMM'R *AM') 55 #M'(M*#'..'C+*&.) CLA..AM.GCLA..APR#K1?A&&RR# 55 R'G+*nM.GL''L(A,)C+*&(*+P'RA#+R) #KPR*.CA*
J+,*AM'
t ientifies name of the Bob" #he Bob is ientifie in the J'. .P++L using thisname" *aming rules are alreay mentione in the coing sheet section"
ACC+*#*G *+ (Manatory" nstallation &epenant")
1" Resource usage charges are charge to the account mentione here"/" f you on>t
-
8/15/2019 JCL 1.0.doc
4/47
Mainframe Refresher Part-1 JCL-Page:?
M.GCLA.. (nstallation &efine).ynta$: M.GCLA..= (= can be A-H 4-)"
1" M.GCLA.. is coe ;ith single alphanumeric character (A-H 4-)"/" 'ach M.GCLA.. is mappe to a e!ice or location ;here the messages are
route"
A&&R.PCt is use to specify ;hether the Bob ;ill run in the Real storage or irtual
storage".ynta$: A&&R.PCNR'ALOR#
R'AL @ Allocation is one in R'AL storage an the program is not page-able"R# @ Allocation is one in R#AL storage an the program is page-able"
R'G+*
.ynta$: R'G+*N$ O yM ($ can be 1-/41/3 F y can be 1-/4?2)"1" t is use to specify the amount of central 5!irtual storage the Bob re%uires"
t can be re%ueste in the units of
-
8/15/2019 JCL 1.0.doc
5/47
Mainframe Refresher Part-1 JCL-Page:E
#M't efines the ma$imum allo;able CP time for the J+," #he parameter can be coe
at '='C car also" +n '='C it efines CP limit of step"
.ynta$: #M' (M*#'. .'C+*&.) M*#'. 1??4 an .'C+*&. 4#M'*+LM#51??45MA=MM means the Bob can use CP for unlimite time
#M'4 ;ill prouce unpreictable results"f #M' is coe on both J+, as ;ell as '='C then '='C #ime limit or the
time left out in the Bob #ime limit @ ;hiche!er is smaller ;ill be the time permittefor the step to complete"
f a J+, runs more than allo;e time then it ;ill A,'*& ;ith system A,'*&coe .0//" f there is no #M' parameter then the CP time limit pre-efine ;ith
CLA.. Parameter ;ill be effecti!e"
*+#K#.+ ser-i to ;hom the Bob '*& 5 A,'*& 5 'RR+R status shoul be
notifie" *+#KF.K.& ;ill sen the notification to the user ;ho submitte the
Bob"
C+*&1" t is use for conitional e$ecution of J+, base on return coe of J+, steps"/" #he return coe of e!ery step is chec
-
8/15/2019 JCL 1.0.doc
6/47
Mainframe Refresher Part-1 JCL-Page:
.#'P*AM't is an +P#+*AL fiel but it is neee if you ;ant to restart a Bob from this
step an for the same reason it shoul be uni%ue ;ithin the Bob"
PGM or PR+CCoe the Program name or PR+C name to be e$ecute" (1-3 characters)
PARM1" t is use to pass !ariable information to the processing program e$ecute by this
Bob step"/" f there is more than one sub parameter or if there is any special character then
enclose them in parentheses5%uotes"0" Ma$imum 144 characters can be passe in this ;ay" Suotes an bract specify J+,L, JCLL, J+,CA# .#'PCA# J+, .K.CQ ;ithin the#Q'* or 'L.' .cope of statement"
Relational conition can be also coe as follo;s:
.#'P*AM'"A,'*&#R' .#'P*AM'"R*#R' .#'P*AM' *+# R*
.#'P*AM'"A,'*&CC any-aben-coe or
&& .tatement
t efines the ata re%uirements of the program" t is coe for e!ery fileuse in the program" f the employee etails are store in a file an catalogue ;ith
the name 6.M.=L3"'MPL+K''"&'#AL.> one of the programs ('MPPGM) in the
application reas this file then JCL car for the && loo
-
8/15/2019 JCL 1.0.doc
7/47
Mainframe Refresher Part-1 JCL-Page:2
55.#'P '='C PGM'MPPGMR'G+*1M
55EMPFILE && &.*.M.=L3"'MPL+K''"&'#AL.&.P.QR
Ihen the program opens 'MPL' it ;oul open .M.=L3"'MPL+K''"&'#AL."#he mapping is one as follo;s in the program" .o in future if you process the same
program ;ith another file .M.=L3"'MPL+K''"&'#AL./ then change of atasetname in the JCL is enough" ,ecause of logical mapping program nee not be
change"
.'L'C# file1 A..G* #+ EMPFILE " (C+,+L Program)&'CLAR' (EMPFILE ) L'W (PL5 Program)
&C, &&*AM'EMPFILE (A..'M,L'R)+P'*(EMPFILE moe) (C )
&.*AM'(&.*)
#he name of the ataset is coe in the &.* parameter" &ataset name can
contain ?? characters incluing the perios in bet;een %ualifier" 'ach %ualifier canha!e 3 characters an there can be // %ualifiers" ,ut usually ;e on>t coe more
than ? %ualifiers"&.*===="KKKK"HHHH&.P.QR
#emporary atasets are inicate by FF in the &.* (&.*FFtemp)"
f &.* is not specifie then the system assigns the specific name to ataset"f &.**LLL' or &MMK is coe then all the 5+ s against this file are
bypasse"
&.Pt is use to escribe the status of a ataset to the system an instructs the
system ;hat to o ;ith that ataset after successful5unsuccessful termination of thestep or Bob"
&.P(current-status normal-termination-status abnormal-termination-status)
Current-status can be:
*'I &ataset oes not e$ist" t ;ill be create in this step
.QR &ataset alreay e$ist an this step nee it ;ithout any e$clusi!e access
+L& &ataset alreay e$ist an this step nee it ;ith e$clusi!e access
M+& f the ataset oes not e$ist it is to be create" f it alreay e$ists recors
are to be ae to the en of the ataset" n both the cases e$clusi!e isneee"
Normal-termination-status:
CA#LG .ystem is to place an entry pointing to the ataset in the system5user
catalog
&'L'#' &ataset is no longer re%uire" .pace a!ailable for use by another atasetbut e$isting ataset not physically erase until o!er;ritten by another
ataset"
PA.. &ataset is passe to subse%uent steps in the same Bob an each step can
use the ataset only once"
''P &ataset is to be
-
8/15/2019 JCL 1.0.doc
8/47
Mainframe Refresher Part-1 JCL-Page:3
Abnormal-termination-status:PA.. is not allo;e" Meaning of CA#LG *CA#LG ''P &'L'#' are same as
normal-termination status"
Absence of any parameter shoul be mentione ;ith 6> as they are positional
parameters" '$: &.P(CA#LG)" f the ataset is a ne; ataset an &.P is notcoe then the efault in effect ;oul be DISP=(NEW,DELEE,DELEE!"
&C, (&ata Control ,loct al;ays ha!e to ;rite the &C, parameter for a ataset" Iriting &C,
parameter is one of the three ;ays the information can be supplie" #he other t;o
;ays are:
1" Coe in the program" n C+,+L R'C+R& C+*#A*. clause specifies the LR'CL
,L+C C+*#A*. clause specifies the ,L.H' R'C+R&*G M+&' clause specifiesR'CM an R'.'R' clause specifies ,*+" &.+RG can be assume from the
name of the ataset an the irectory space allocation of .PAC' parameter"
-
8/15/2019 JCL 1.0.doc
9/47
Mainframe Refresher Part-1 JCL-Page:
/" sually for an e$isting ataset ;e on>t ha!e to coe &C, parameters" t ;ill bea!ailable in the ataset label" #he ataset label is STORED in the #+C (&A.&) or
along ;ith ataset (#AP') uring the ataset creation"
LA,'L.ynta$: LA,'L (&ataset-se%uence-number
label-type PA..I+R& O *+PIR'A&
* O +# R'#P&nnn O'=P (yyOyyyy5))
Dataset Se#uence number - ientifies the relati!e position of a ataset on a
tape5cart !olume" .houl be 1 through ? ecimal igits" +mit this parameter ifaccess is being mae to the first ataset on the tape !olume"
Label - inicates the label type of the tape5cart !olume"
.L - inicates that a ataset has ,M stanar labels" &efault !alue"
*L - inicates that a tape ataset has no labels" *.L - inicates that a tape ataset has nonstanar labels"
.L - inicates that a tape ataset has both ,M stanar an user labels" ,LP - re%uests that the system bypass label processing for a tape ataset"
PASSW$%D - inicates that a ataset cannot be rea change elete or ;ritten tounless the correct pass;or is specifie"
N$PW%EAD - inicates that a ataset cannot be change elete or ;ritten unlessthe correct pass;or is specifie" *o pass;or is necessary for reaing the ataset"
IN - inicates that a ataset opene for 5+ is to be rea only"
$& - inicates that a ataset opene for 5+ is to be ;ritten only"
%EPD ' EPD - inicates the retention perio an the e$piration ate for a
ataset" '$: LA,'L'=P4?1/1 (&ataset e$pires on 1/1st ay of /44?)
LA,'LR'#P&/44 (&ataset is retaine for /44 ays)
-
8/15/2019 JCL 1.0.doc
10/47
Mainframe Refresher Part-1 JCL-Page:14
.PAC't is use to re%uest space for the ne; ataset" t is manatory for all the
*'I atasets"
.PAC' (N#R O CKL O bl
-
8/15/2019 JCL 1.0.doc
11/47
Mainframe Refresher Part-1 JCL-Page:11
'$tents'$tent is contiguous memory location" +nly 1 e$tents are possible for a
physical se%uential ataset in a !olume" n loose terms only 1 pointers can bestore for a P. ataset in one !olume" or a .AM ataset it can be 1/0" n aition
to this the primary (first) or seconary (consecuti!e) space re%uest has to be met;ithin E e$tents"
f any of the abo!e is not met then there ;ill be space A,'*&" .o for a P.ataset e!en though you re%uest 144 trac
-
8/15/2019 JCL 1.0.doc
12/47
Mainframe Refresher Part-1 JCL-Page:1/
*#t is use to re%uest the system to place the ataset on a specific e!ice5a
certain type or group of e!ices or the same e!ice as another ataset"*#((e!ice-number O e!ice-type O group-name)
(unit-count O P) (&''R))
+R *#Aname
0e2ice-number - ientifies a particular e!ice by a 0-character he$aecimal number"
t shoul not be use unless absolutely necessary"
0e2ice-t/3e - Re%uests a e!ice by its ,M supplie generic name" ('g" 0034)
rou3-name - Re%uests a group of e!ices by its symbolic name" nstallation mustha!e assigne the name to the e!ice(s) uring system initialiDation"
#he group-name is 1 through 3 alphanumeric characters ('g" #'MP&A)
unit-count - .pecifies the number of e!ices for the ataset" (1-E)
P - as
-
8/15/2019 JCL 1.0.doc
13/47
Mainframe Refresher Part-1 JCL-Page:10
2olume-count - .pecifies the ma$imum number of !olumes that an output atasetre%uires" (1-/EE)
SE%=serial-number - entifies by serial number the !olume(s) on ;hich the ataset
resies or ;ill resie" 1 through alphanumeric or national(89) characters"Kou can coe a ma$imum of /EE !olume serials"
'$ : +LM'.'R&'441 +L(0.'R(PAG'41PAG'4/PAG'40))
.K.+#class O 7t is use to ientify this ataset as a system output ataset" #he .K.+#
ataset is assigne to an output class" #he attributes for each class are efineuring J'. initialiDation incluing e!ice or e!ices for the output class" >7> refer-
bac
-
8/15/2019 JCL 1.0.doc
14/47
Mainframe Refresher Part-1 JCL-Page:1?
+#Q'R .tatements
+#LM
t limits the number of print lines" #he limit ranges from 1 to 1222/1E" #he Bob is terminate if the limit is reache"
55name && .K.+#7+#LM0444f the program tries to ;rite 0441st line J+, ;ill A,'*& ;ith .2//"
&'.#
#he &'.# parameter is use in conBunction ;ith the .K.+# parameter;here the output is to be sent" #his might be use ;here a Bob is run on se!eral M.
systems an the output is irecte to a single system for the con!enience of the en-user"
.ynta$: 55name && .K.+#7&'.#estination-&
+#P#+#P# statement is use to specify .K.+# parameters for se!eral &&
statements ;ith a single JCL statement" t allo;s printing the output from single &&statement se!eral times each ;ith ifferent .K.+# parameters"
C+P'. +#LM CLA.. &'.# +RM. GR+P& can be coe in +#P#"
&'AL#K can be coe on J+, an .#'P le!el" .#'P le!el efault o!erriesJ+,L''L efault"
55#'.#914 J+, """
55.#'P1 '='C PGM+*' 55+RM/ +#P# &'AL#K'.C+P'./&'.#PPP
55.K.PR*# && .K.+#A --Z Prouces / copies at PPP 55.#'P/ '='C PGM#I+
55+RM0 +#P# C+P'.0&'.#=KH
55.K.PR*# && .K.+#S+#P#(.#'P/"+RM0.#'P1"+RM/)--Z Prouces 0 copies at =KH an / copies at PPP"
Ma$imum number of C+P'. possible is /E?"
+RM..pecify the type of forms on ;hich the .K.+# atasets shoul be printe"
t is 1-3 alphanumeric or national character" .K.+# && +RM. parameter o!erries+#P# PARM. parameter"
55name +#P# +RM.form-name
R''#he atasets are allocate Bust before the e$ecution of step an e-allocate
after the e$ecution of step" R'' parameter e-allocates the file as soon as the file isclose" 55name && .K.+#=R''CL+.'
*CL&'
#he purpose of *CL&' statement is same as C+PK statement of C+,+Lprogram" #his is use to specify a P&. member that ;ill be copie into the JCL at Bob
submission time" t is use to specify a stanar list of &&*AM'. ;hich ;oulother;ise be uplicate in many similar PR+C." #his also has the a!antage that
-
8/15/2019 JCL 1.0.doc
15/47
Mainframe Refresher Part-1 JCL-Page:1E
amenments nee only be mae in one place" ,ut it ma
-
8/15/2019 JCL 1.0.doc
16/47
Mainframe Refresher Part-1 JCL-Page:1
R''R,AC#he bac
-
8/15/2019 JCL 1.0.doc
17/47
Mainframe Refresher Part-1 JCL-Page:12
.pecial && names
.#'PL,
t follo;s '='C statement" Loa moules ;ill be chec
-
8/15/2019 JCL 1.0.doc
18/47
Mainframe Refresher Part-1 JCL-Page:13
Proceures.et of Job control statements that are fre%uently use are efine separately
as a proceure an it can be in!o) 55.#'P41 '='C PR+C1
M#441/"PR+C"P&.(PR+C1)//STEP1 EXEC PGM=IKJEFT01
//SYSTSPRT DD SYSOUT=*//SYSTSIN DDDISP=SHR,DSN=MT0012.MSG(TEST)/*
Proceure Moification
Proceure shoul be generic so that it can easily be use by the multipleJ+,. by simple o!erries" &uring the in!o
-
8/15/2019 JCL 1.0.doc
19/47
Mainframe Refresher Part-1 JCL-Page:1
1" Multiple o!erries are allo;e but they shoul follo; the orer" #hat is first youshoul o!errie the parameters of step1 then step/ an then step0" Any o!erries in
the ;rong orer are G*+R'&"/" f the .#'P*AM' is not coe uring o!errie then the system applies the
o!errie to first step alone" 55'='C C+,CLGR'G+*E1/
Proceure Moification- && .tatements
&& statement in the proceure can be moifie by 55.#'P*AM'-*-PR+C"&&*AM'-+-.#'P && parameters of ataset"""
1" && statement o!erries shoul be one in the same orer they appear in
proceure" Iithin a && statement the orer of parameters oes not matter"
/"Any aitions shoul follo; moifications" n a step if you ;ant to o!errie theataset attribute of one e$isting ataset an a another ataset you shoul
o!errie the ol one before aing the ne; one"
0" #o omit a parameter from a && statement in a proceure Bust name it but on>t
pass any !alue for it"
Proceure Moification sing .ymbolic Parameter
A symbolic is a PR+C placeholer" #he !alue for the symbolic is supplie ;henthe PR+C is in!o
-
8/15/2019 JCL 1.0.doc
20/47
Mainframe Refresher Part-1 JCL-Page:/4
Proceure '$ample
.M.=L3"#'.#"PR+CL,('MPPR+C)
55'MPPR+C PR+C CLA..T7T.PAC'T11T &efault !alues efine for CLA..
55.#'P1A '='C PGM'MPPGM an .PAC' symbolic parameters"
55.K.+# && .K.+#FCLA..
55'MPMA.# && &.*FQLS""'MPL+K''"'&.&.P.QR 55 && &.*FQLS""'MPL+K''"MR&.P.QR 55 && &.*FQLS""'MPL+K''"H&.P.QR
55'MP+# && &.*FF*.'L&.P(*'IPA..) *.'L is temporary
55 *#.K.&A.PAC'(CKL(F.PAC')) ataset
55'MPC*#L && &MMK 557 'MPC*#L is a control car an any in-stream ata can be coe uring the
557 in!o 4alue is i2en or s/mbolic 3arameter SPACE"
'' is su33lie0" 55.#'P41 '='C 'MPPR+CPARM".#'P1A>4/511512>QLSPR+&
55.#'P1A"'MPMA.# &&
55 && &.*PR+&"'MPL+K''"C#.&.P.QR ''
-
8/15/2019 JCL 1.0.doc
21/47
Mainframe Refresher Part-1 JCL-Page:/1
',C+PKt is use to copy one or more members from an e$isting ataset to a ne; or
e$isting P&. ata set" t can be also use for compressing P&. Loaing P&. to #AP'an unloaing from #AP' to is
-
8/15/2019 JCL 1.0.doc
22/47
Mainframe Refresher Part-1 JCL-Page://
',G'*'Rn aition to .K.* an .K.PR*# atasets it nees .K.#1 an .K.#/
atasets" .K.#1 is coe ;ith input ataset an .K.#/ is coe ;ith outputataset" f attributes ;ere not gi!en for .K.#/ then the program ;oul assume
.K.#1 attributes for .K.#/"t is primarily use as C+PK utility" f you ;ant to copy any #AP' file to &.
or &. to #AP' then no .K.* is neee"f you ;ant to reformat your input file or if you ;ant to create members out
of your P. file then you nee control car (.K.*) an the first statement shoul beG'*'RA#'"
'L& Meaning
G'*'RA#' irst .tatement ;hich sets the !alues for MA=*AM'MA=GP.MA=L#. MA=L&.
MA=*AM' Ma$imum M'M,'R statements that can follo;"(&uring member
generation).ynta$: MA=*AM'0
MA=GP. Ma$imum &'*# statement that can follo;" (&uring member
generation)
MA=L& Ma$imum L'& statements that can follo;" (&uring reformatting)
.ynta$: MA=L&.14
MA=L#. Ma$imum siDe of literal uring reformatting"
M'M,'R t ientifies the name of the member to be create"
.ynta$: M'M,'R *AM'M'M1
R'C+R&&'*#
t usually follo;s M'M,'R statement to ientify the last recor to becopie from the input ataset"
R'C+R& &'*# (Length>Literal>.tart-Column)
'$ample: R'C+R& &'*#(0>M.>1) then the last recor to becopie into the member from the input ataset has M. in column
1-0"
R'C+R&'L&
t is use for reformatting the recors in the input file"R'C+R& 'L&(Length >literal> or input column con!ersion outputcolumn)
+utput column says ;here the fiel shoul be place in the outputfile" Con!ersion can be HP or PH" PH means the input pac
-
8/15/2019 JCL 1.0.doc
23/47
Mainframe Refresher Part-1 JCL-Page:/0
',G'*'R- .K.* CAR& +R R'+RMA##*G &R*G C+PK
55.K.* && 7 G'*'RA#' MA=L&.EMA=L#.?
R'C+R& 'L&(E11)'L&(/4/1)'L&(1HP/) = 'L&(24HP01)'L&(?T#'.#T0)
57
nput Column Any Con!ersion +utput column
alues in column 1-E Copie into column 1-E
alues in column /1-?4 Copie into column -/E
alues in column 1- Con!ert the Done into
pac
-
8/15/2019 JCL 1.0.doc
24/47
Mainframe Refresher Part-1 JCL-Page:/?
',C+MPRt is use to compare t;o P. or P&. atasets" #;o P. are same if the
number of recors is same an all the recors are ientical" .K.* is not neee forP. comparison" f they are not ientical then the follo;ing ;ill be liste in the
.K.PR*#"
&& statements that efine the ataset Recor an ,loc< numbers theune%ual recors an ma$imum of 14 une%ual recors foun"
#;o P&. are same if the corresponing members contain same number of
recors an all the recors are ientical" .K.* shoul ha!e C+MPAR' #KP'P+ forP&."
55.K.#1 *P# &A#A.'# 1 55.K.#/ *P# &A#A.'# /
55.K.PR*# 55.K.* && 7
',,#PCQ
','&#:
+ne typical inter!ie; %uestion is ho; to run the selecte steps" or e$ample ho; to
e$ecute step? an step of 14 steps JCL" #he typical ans;er is to restart the Bobfrom step? an inclue a 6ALIAK. #R'> conition (li
-
8/15/2019 JCL 1.0.doc
25/47
Mainframe Refresher Part-1 JCL-Page:/E
Message ataset can be altere using M.G&&* parameter of .K.*"
.+R# Car to copy all the recors from .+R#* to .+R#+#
.+R# 'L&.C+PK"
.+R# car to s#RCQK>)Car to select the recors ;hich has same !alues in /-0 an E-
*CL&' C+*& (//CQ'SE/CQ)
.+R# car to reBect the recors meeting the criteria
+M# C+*&(.#AR#P+.L'*G#Q#KP'R+AL')
Car to reBect the recors ;ith #RCQK in the column ?-+M# C+*& (?CQ'SC>#RCQK>)
Car to reBect the recors ;hich has same !alues in /-0 an E-+M# C+*& (//CQ'SE/CQ)
.+R# car to change P& to H&
f input file has a P& fiel .(E) Comp-0 an to reformat as PC .(E)"(/) thenuse
+#R'C 'L&.(1EP&'&#(.#####"##).G*.(-))
.+R# car to remo!e the uplicates
.+R# 'L&. (1ECQA)'SAL.
.M 'L&.*+*'".+R#* recors are sorte on the
-
8/15/2019 JCL 1.0.doc
26/47
Mainframe Refresher Part-1 JCL-Page:/
+#R'C(1/4.'S*M?H&) ? igit Done ecimal se%uence number is
ae ;ith all the recors of input file in column /1-/?
#his ;ill be useful for reaing a file from bottom to top" #his ;ill be useful formatching logic in JCL" Matching logic in JCL ;ill be e$plaine later"
.+R# car to restructure the input file before feeing to sort
*R'C 'L&.(02/?4?01/)#he length of the output file is 1?"
.+R# car to create multiple files from single input file (Ma$imum 0/ files)
+#L L'.1 *CL&'(1CQ'SC>MM,A>)+#L L'./ *CL&'(1CQ'SC>#RCQK>)
Coe output files as .+R#+1 an .+R#+/"
.+R# car to restructure the sorte file before ;riting+#R'C 'L&.(1:1/4 Z R.# /4 CQAR R+M *P# L'
/1:C>M#Q> Z +LL+I'& ,K .#R*G 6M#Q> /:14H Z +LL+I'& ,K 14 ,*ARK H'R+.
0:/114) Z /1.# to 14 CQARAC#'R. R+M *P# L'"
.+R# car to change any 6==> in the column -2 to 6KK> +#R'C 'L&.(1:1E
:1/CQA*G'(/CT==TCTKKT)*+MA#CQ(/)3?/)
.+R# car to merge
M'RG' 'L&.(.#AR#P+.L'*G#Q#KP'A.COD'.C.#AR#P+.V)1/3 such eys can be gi!en" &atasets to be merge are coe in .+R#*44 to
.+R#*"
.+R# CAR& to e$tract all the PR+C. e$ecute in a JCL
+P#+* C+PK
*CL&' +RMA#..C+*&(131'SCT'='CTA*&131*'CTPGM)
C'#++L
&& statements in C'#++L:
#++LM.G +R C'#++L M'..AG'.&.M.G +R .+R# M'..AG'.
#++L* +R C'#++L-C+*#R+L-CAR&====C*#L +R .+R#-C+*#R+L-CAR& .'& ,K C'#++L
==== is coe in .*G clause of #++L*"
#++L* car to copyC+PK R+M(*&&) #+(+#&&) ( p-to 14 && can be gi!en)"
#++L* car to copy uni%ue5selecte uplicate recors
.'L'C# R+M(*&&) #+(+#&&) +* (.#AR#P+.L'*G#Q#KP')*+&P.5ALL&P.5L+I'R(n)5QGQ'R(n)5'SAL(n)5R.#5LA.#
*+&P. @ C+PK only the uni%ue recors"ALL&P. @ C+PK only the uplicates"
-
8/15/2019 JCL 1.0.doc
27/47
Mainframe Refresher Part-1 JCL-Page:/2
QGQ'R(n) @ C+PK those uplicates that occurs more than n times (n Z 1-)L+I'R(n) @ C+PK those uplicates that occurs less than n times (n Z 1-)
'SAL(n) @ C+PK those uplicates that occurs e$actly n times (n Z 1-)R.# - Retains the first copy in case of uplicates
LA.# - Retains the first copy in case of uplicates
#++L* Car to get the statistics of a numeric fiel.#A#. R+M(*&&) +*(.#AR#L'*G#Q#KP')
Print the ma$imum a!erage an total for numeric fiels" (14 +* possible)
#++L* Car to get the number of uni%ue !alues in a fiel*S' R+M(*&&) +*(.#AR#L'*G#Q#KP')
Print count of uni%ue !alues"
#++L* Car to get all the !alues for a particular fiel&.PLAK R+M(*&&) +*(.#AR#P+.L'*G#Q#KP') L.#(L.#&&)
Prints !alues of a fiel in the input ataset to L.#&&" (/4 +* possible)
#++L* Car to get all the !alues for a particular fiel @ Iith +ccurrence constraint
+CCR. R+M(*&&) +*(.#AR#P+.L'*G#Q#KP') L.#(L.#&&) +P#+* +P#+* Z QGQ'R(n) L+I'R(n) 'SAL(n) ALL&P. *+&P.QGQ'R(/) means only the !alues that are repeate more than / times is reporte at
L.#&& ataset"
#++L* Car to get number of recors fell into the range mentioneRA*G' R+M(*&&) +*(.#AR#L'*G#Q+RMA#) L.#(+#&&) options
+ptions are +CCR. QGQ'R(n)5L+I'R(n)5QGQ'R(n1) L+I'R(n/)5
'SAL(n) *+#'SAL(n)t prints count of recors meeting !alue criteria an the +RMA# shoul be numeric"
#++L* car to in!o
-
8/15/2019 JCL 1.0.doc
28/47
Mainframe Refresher Part-1 JCL-Page:/3
0?E2341/2341/0?E
341/0?E2 55#1 && &.*F#1.PAC'(CKL(EE)RL.')&.P(PA..)
55#/ && &.*F#/.PAC'(CKL(EE)RL.')&.P(PA..) 55*# && &.*7"#1&.P(+L&PA..)+LR'7"#1
55 && &.*7"#/&.P(+L&PA..)+LR'7"#/ 55L'A && .K.+#7
55L', && .K.+#7 55+# && .K.+#7
55#++L* && 7.+R# R+M(*1) .*G(C#L1)
.+R# R+M(*/) .*G(C#L/)
.+R# R+M(*#) .*G(C#L0)
55C#L1C*#L && 7.+R# 'L&.(114CQA)
+#L *AM'.#1+#R'C(134CT1T)
55C#L/C*#L && 7.+R# 'L&.(114CQA)
+#L *AM'.#/+#R'C(134CT/T) 55C#L0C*#L && 7
.+R# 'L&.(114CQA)
.M 'L&.(311H&)+#L *AM'.+#*CL&'(311H&'S0)+#R'C(134)
+#L *AM'.L'A*CL&'(311CQ'SCT1T)+#R'C(134)+#L *AM'.L',*CL&'(311CQ'SCT/T)+#R'C(134)
57
'$planation:C#L1 @ A 1 to all the recors of the first file at 34th column
C#L/ @ A / to all the recors of the secon file at 34 th column
C#L0 @ Concatenate both files an sort the file on 6/> an 60> into three files" Ihile ;riting the
recors remo!e the 31st byte ae for our temporary purpose" 61> @ Recors only in first file
6/> @ Recors only in secon file" 60> @ Recors e$ist in both the files"
'QPR+GM
t is use to1"Catalog a ataset (CA#LG &.*AM'A","C +L.'Rnnnn)
/"ncatalog a ataset (*CA#LG &.*AM'A","C)
0"Rename a ataset (R'*AM' &.*AM'A","C+L.'Rnnnn*'I*AM'&"'")
?"Create an ine$ for G&G (,L&G *&'=gg-name LM#n X'MP#KYX&'L'#'Y)E"&eleting the ine$ for G&G (&L#= *&'=ine$-name)
#he .K.* cars are gi!en in brac in
2/n column"f your shop installe .M. then uncatalog ;ont ;or< it out because .M.
hanles the catalog"
-
8/15/2019 JCL 1.0.doc
29/47
Mainframe Refresher Part-1 JCL-Page:/
'Q*##t is use to initialiDe a tape" t ;ill ;rite the !olume serial number to the tape"
//STEP01 EXEC PGM=IEHINITT//SYSPRINT DD SYSOUT=*//!"BE! DD DCB=DEN=#,UNIT=(T"PE,,DEFER),DISP=(,KEEP),!"BE!=(,S!)
//SYSIN DD* !"BE! INITT SER=DESMS,DISP=RE%IND/*
Generation &ata Group (G&G)G&G is group of atasets that are relate to each other chronologically or
functionally" 'ach of these ataset is calle a generation" #he generation numberistinguishes each generation from others"
f the G&G ,ase is MM41"PAKR+LL"MA.#'R then their generations are
ientifie using the generic name [MM41"PAKR+LL"MA.#'R"Gnnnn$$"\nnnn is generation number (41-) an $$ is !ersion number (44-)"
Referring Generations in JCL#he current generation is referre by G&G,A.'(4) the pre!ious generation
by G&G,A.'(-1) an the ne$t generation by G&G,A.'(U1)"
G'*'RA#+*. AR' P&A#'& +*LK A# #Q' '*& + #Q' J+," t means if the
first step creates one generation coe it as G&G,A.'(U1) an if the secon stepcreates another generation then it .Q+L& be coe as G&G,A.'(U/) as the (U1)
!ersion is not yet promote to current !ersion" .imilarly to refer the G&G create in
the secon step refer it by G&G,A.'(U/)"
G&G atasets can be also reference ;ith their generation number li
-
8/15/2019 JCL 1.0.doc
30/47
Mainframe Refresher Part-1 JCL-Page:04
.CRA#CQ5
*+.CRA#CQ
.CRA#CQ un-catalogue an eletes the !ersions that are not
-
8/15/2019 JCL 1.0.doc
31/47
Mainframe Refresher Part-1 JCL-Page:01
un-initialiDe numeric item
.4C3-
.4C
i$e Point- +!erflo; an &i!ie e$ceptions respecti!ely"
.4CA
.4C,
&ecimal Point- +!erflo; an &i!ie e$ception respecti!ely"
.4CC
.4C&
loating Point- '$ponent nerflo; an o!erflo; e$ceptions respecti!ely"
.410 +pen Problem" sually this A,'*& occurs ;hen the program tries to rea a
member of P&. an the member is not foun"'$: &uring compilation if you coe a non-e$isting member as source
(.K.*)"
.323 Memory issue" sually this A,'*& occurs in #.+ ;hile e$ecuting your Bob
using =P'&#+R" Close any other screens that are open an then try to re-
e$ecute the J+,"
Qo; to .ol!e .ystem A,'*&. (.4C?.4C2)]
1"Refer the .K.+# of the Bob an get the ne$t se%uential instruction to be e$ecute(+ffset)"
/"Compile the program ;ith L.# option"
0"Chec< for the offset in the compilation list an Get the respecti!e statementnumber"
?"entify the statement" #his ;oul be a numeric operation on numeric ata"E"entify the source of the numeric ata an correct it"
.K.+# Message:rom compile unit #'.#PGM at entry point #'.#PGM at compile unit offset
U44444?0A at entr/ oset 66666;BA at a00ress 666699"
n the compilation listing:
*+CA#+* PARAM'#'R.:*+*MMAP=R'+,J+,(/32/)..R*+CMPR/&A#A(01)..RA*G' LIS
L*' 9 Q'=L+C 'R, L*' 9 Q'=L+C 'R,4444? 4440,' M+' 4444?2 4440C? M+'
4444? 444?/' M+' 4444E4 666;BA C$MP&E
?0A is a part of statement number E4
Refer the statement number in the listing5Program:
667666 C$MP&E AC$MP = AC$MP ' B
.o the problem is ;ith the arithmetic operation of AC+MP"in the source of the fiel after confirming the Bun< !alue in it"
&elete the corrupte recor the source for this fiel from the file an ran the Bobagain"
(Prouction .upport people- *ee to chec< the importance of the ata an correct or
elete accoringly")
.ubmission of Job from C+,+L Program
-
8/15/2019 JCL 1.0.doc
32/47
Mainframe Refresher Part-1 JCL-Page:0/
Irite the Job statements to a output file an route the file to *#R&R insteaof cataloguing" *#R&R-nternal Reaer
J+,: 55.#'P1 '='C PGMMA*PGM
55&&1 && &.*M#Q"#'.#&.P.QR 55JCL&& && .K.+#(7*#R&R)
PR+GRAM:MA*PGM
.'L'C# JCLL' A..G* #+ JCL&&V" ('n!ironment &i!ision) & JCLL'"
41 JCL-R'C PC =(34)" (ile .ection)+P'* +#P# JCLL'" (+pen in output an ;rite JCL statements)
M+' T55#'.#J+, J+, 1111T #+ JCL-R'C" M+' T55.#'P41 '='C PGM',R1?T #+ JCL- R'C
CL+.' JCLL' (#'.#J+, ;ill be submitte automatically)
.ubmission of Job from CC. ProgramJCL can be submitte from CC. by .P++L +P'* .P++L IR#' an .P++L
CL+.' commans" #his nees .P++LK'. entry in .# table" Refer CC. section formore etails"
.torage Management .ubsystemt is optional feature of the operating system that manages user atasets" #he
.M. parameters apply only to the ne; atasets an the system ignores for e$istingatasets &&7 or && &A#A atasets J+,CA# an J+,L, && statements an
.K.+# atasets"
#he follo;ing ata classes establish !arious efault !alues for catalogueatasets" An aministrator assigns a name to each group of efault !alues an then
you reference this name on your && statements to use the !alues"
.#+RCLA. @ &efines *# an +L parameters&A#ACLA. - &efines R'CM LR'CL AGR'C .PAC' R'#P&5'=#P& &.*#KP'
'KL'* R'C+RG 'K+""etcMGM#CLA. @ Migration bac
-
8/15/2019 JCL 1.0.doc
33/47
Mainframe Refresher Part-1 JCL-Page:00
Qo; to allo;5restrict others to ;or< on your atasets]
P'RM# comman ;ill o this" f ;ant to protect my user %ualifie atasetsan my & is M#441/ then the follo;ing comman ;ill isallo; all others access
o!er these atasets"
#.+ P'RM# TM#441/"7T &(ALL) ACC'..(*+*')
.pecific &s an .pecific access can be gi!en in &5ACC'.. parameters&etaile information can be foun in .K.1"Q'LP(P'RM#)"
Qo; to o 0"? search in batch
#he follo;ing R'==5JCL ;ill o"
//STEP002 EXEC PGM=IKJEFT01,DYN"MNBR=12$//ISPP!IB DD DISP=SHR,DSN=ISP.SISPPENU//ISPS!IB DD DISP=SHR,DSN=ISP.SISPS!IB// DD DISP=SHR,DSN=ISP.SISPSENU//ISPM!IB DD DISP=SHR,DSN=ISP.SISPMENU//ISPPROF DD DSN=MT0012.ISPF.TEMPPROF,DISP=SHR//ISPT!IB DD DISP=SHR,DSN=ISP.SISPTENU//ISP!OG DD SYSOUT=*,// DCB=(!REC!=120,B!KSI&E=2'00,DSORG=PS,RECFM=FB)//ISP!IST DD SYSOUT=*,// DCB=(!REC!=121,B!KSI&E=1210,RECFM=FB")//SYSEXEC DD DISP=SHR,DSN=ISP.SISPEXEC//SYSPROC DD DISP=SHR,DSN=MT0012.TOO!S// DD DISP=SHR,DSN=ISP.SISPC!IB//SYSTSPRT DD SYSOUT=*//SYSTSIN DD *PROFI!E PREFIX(MT0012)ISPST"RT CMD(DS!IST MP.MPFM.COMPRINT.I*)
/*//OUTPUT DD DSN=MT0012.D"T"SETS.COMPRINT,// DISP=(NE%,C"T!G,DE!ETE),// SP"CE=(TRK,(10,10),R!SE),// DCB=(!REC!=$0,RECFM=FB)//*
!M!IST + REXX -+ SYSPROC 3+4(MT0012.TOO!S)5
"RG D"T"SETS"Y 6GENERIC D"T"SET P"SSED5 6 D"T"SET
"DDRESS ISPEXEC7!MDINIT !ISTID(!ISTID) !EE!(7D"T"SET7)7S"Y 6!ISTID 56 !8RC !ISTIDDSN"ME = 7 7DSCOUNT = 0DO UNTI! RC 9 07!MD!IST !ISTID(7!ISTID7) D"T"SET(DSN"ME) OPTION(!IST) ST"TS(NO)7IF RC = 0 THEN DODSCOUNT = DSCOUNT : 1DSN.DSCOUNT = DSN"MES"Y 6D"T"SET FOUND 5 6 DSN"ME
ENDENDS"Y 6TOT"! D"T"SETS FOUND 5 6 DSCOUNT"DDRESS TSO
-
8/15/2019 JCL 1.0.doc
34/47
Mainframe Refresher Part-1 JCL-Page:0?
7EXECIO * DISK% OUTPUT (STEM DSN. FINIS77FREE FI(OUTPUT)7
7!MDFREE !ISTID(!ISTID)7
EXIT (0)
JCL for .AR-*-,A#CQ#he prouction Job logs are usually route to one of the thir party proucts"
.AR is one such prouct" #he other proucts are CA-'I an 'I-&R'C#"
#he follo;ing JCL is use to %uery the .AR in batch"
//!O"D!OG EXEC PGM=S"RBCH//STEP!IB DD DSN=SYSP.C"I.C"I!IB,DISP=SHR//SYSPRINT DD SYSOUT=*//REPORT DD DSN=CORP.DBSY2KT.JOBRPT,DISP=MOD//!O"DDD DD DSN=CORP.DBSY2KT. !O"D!OG,DISP=O!D//SYSIN DD DSN=CORP.DBSY2KT.UTI!S(CYCC"RD%),DISP=SHR
#o loa the complete log (J+, PR+&,P of generation ??1) into a ataset
name as L+A&&& use the follo;ing car: 5L+A& &&*AM'L+A&&& &PR+&,P G'*??1
#o get run-ate run-time return coe an generation of all the prior runs of
a Bob use the follo;ing car" #he result ;ill be store in the ataset name asR'P+R#"
5L.# &J+,*AM'
JCL for CA2-*-,A#CQ
CA2 is a scheuler prouct" Ie brief about the prouct in the ne$t section"#his JCL is use to %uery CA2 in batch"
55CC22,# PR+C &4P++LT1-3T&.*P=+P#PG.A..,.#R
55,#'RM '='C PGM.AA.,.#R 55 PARMT4P++L(1-3) T 55.#'PL, && &.P.QR&.*CA"CA2"L+A&L,
55CC2CM&. && &.P.QR&.*CA"CA2"C+MM&. 55.K.PR*# && .K.+#7&C,,L.H'100
55'RR+R. && .K.+#7&C,,L.H'100 55.K.&MP && .K.+#7
55.K.* &&7 Coe the CA2 commans
57
JCL +R =&C-*-,A#CQ#here may be a nee to rea the run etails of a Bob log insie the R'=="
#his can be one using the +#P# comman of #.+" #he follo;ing JCL captures thecomplete log information of the Bob C'**A'& ;ith & J+,4342 into
#".P"M#Q(#'.#1)"
55R*#.+ '='C PGMJ'#41 55.K.#.PR# && .K.+#7
55.K.#.* && 7+#P# C'**A'&(J+,4342) PR*#(T#".P"M#Q(#'.#1)T)
57
-
8/15/2019 JCL 1.0.doc
35/47
Mainframe Refresher Part-1 JCL-Page:0E
557
JCL +R SI-*-,A#CQ
SI is the +*L*'-help a!ailable in mainframe"
Ihen the nformation5Iarning5'rror5A,'*& isplaye in the J'. message is notescripti!e or synta$ of any comman is neee one can easily refer in SI"
SI searches the specifie string in all the manuals a!ailable" f the string isfoun in more than one manual it lists all the manuals" Ie ha!e to choose the
manual an procee accoringly"
#he follo;ing JCL can be use to in!o
-
8/15/2019 JCL 1.0.doc
36/47
Mainframe Refresher Part-1 JCL-Page:0
.cheuler: CA-2
J'. selects the Bob for processing" +nce you submitte the Bob you lose yourcontrol o!er the Bob" J'. chec
-
8/15/2019 JCL 1.0.doc
37/47
Mainframe Refresher Part-1 JCL-Page:02
n such situations you shoul go for +RC'-C+MPL'#+* than CA*C'L" f there isno epenency then you can o anyone"
#.+ CA2CL.# ;ill ta
-
8/15/2019 JCL 1.0.doc
38/47
Mainframe Refresher Part-1 JCL-Page:03
&ebugger- =P'&#+R
=P'&#+R5#.+ is a testing ebugging an analysis tool that allo;s theprogrammer to !ie; the source coe as it e$ecutes in orer to ientify incorrect
logic test har-har-to-!aliate routines an analyDe both program structure anata flo;" t is a CA prouct"
#he program to be ebugge in =P'&#+R en!ironment has to be compile
;ith the JCL that has =P'&#+R steps" Chec< the installation configuration controlleror the installation o;n utility for compiling a program ;ith =P'& option" #he loa
library of the =P'& compile source must be ae to the =P'& loa lib panel"
&&+ file shoul be allocate before the e$ecution of the program" t is useto capture the source listing output from your =P'&#+R5#.+ session" *o; the
program can be e$ecute in =P'&#+R in one of the ;ays @ #.+ (+nline) or ,A#CQ
(nteracti!e ebugging n-attene ebugging)"
+nce the program source listing is isplaye brea< points can be set up inany line by the line comman B" GO comman e$ecutes all the statements from thecurrent statement of the program to the brea< point" After the brea< point if you
;ant you can go step-by-step e$ecution by GO 1 comman or alternati!ely againyou can type G+ comman that ta" 6RETEST> comman starts the test once again from the beginning"
6DELETE> is use to elete all the =P'& comman ('$: ,rea< points)"
K VAR-NAME in the comman line isplays the !alue of the !ariable" f you
;ant to change the !alue of the !ariable before it is passe to ne$t statement it canbe one" PEEK VAR-NAME can be also use for this purpose"
f you ;ant to trac< the program flo; ;hen the !ariable got specific !alue in it
+R ;hen the !alue in the !ariable changes then use the comman 6WHEN VAR-NAME= ‘value> +R 6WHEN VAR-NAME CHANGES>" 6WHEN DELETE> comman
;ill reset the IQ'* comman issue before"
REVERSE comman is use to re!ie; the e$ecution path that le to current
brea< point" #o use R''R.' M+*#+R comman shoul ha!e been issue before"
MONTIOR comman recors the program e$ecution in a buffer" After R''R.'comman G+ 1 statement e$ecutes 1 statement in the re!erse irection"
Comman 6INTERCEPT .,-PR+GRAM-*AM'> Bust before the call statement
ta
-
8/15/2019 JCL 1.0.doc
39/47
Mainframe Refresher Part-1 JCL-Page:0
*#'RC'P# R''R.' ,R'A P+*# an &&+ files are important frominter!ie; point of !ie;"
+ther &ebuggers: C+,#'.# *#'R#'.#"JCL nter!ie;:
1" &ifference bet;een J'./ an J'.0
/" Qo; can you specify temporary ataset in JCL]0" Iays of passing ata from JCL to Program
?" .pace parameter an space A,'*&. ,02 &02 an '02"E" Qo; to sol!e system A,'*&. li
-
8/15/2019 JCL 1.0.doc
40/47
Mainframe Refresher Part-1 JCL-Page:?4
P.I is program status ;or" t is ouble ;or control register that ismanage by both M. an the har;are" .econ ;or contains the ne$t se%uential
instruction to be e$ecute"
Can ;rite a ataset ;hich has a isposition of .QR]
Kes" ,ut it is not a!isable" Irite shoul ta error message" My Bob is
;aiting for a ataset for a long time" Qo; o lists you the users5Bobs using the ataset"
Iay /: .P 0"? try to eit the ataset" Kou ;ill get ataset-in-use message" As youcan as< more etail in .P for any error message by pressing 1 press 1 again
.P lists you the users5Bobs using the ataset"
Ihat is the ifference bet;een P&. an P&.']*o compression is neee for P&.' atasets" Ihen you elete a member the
system ma
-
8/15/2019 JCL 1.0.doc
41/47
Mainframe Refresher Part-1 JCL-Page:?1
Ihen P&. compressing gi!es me more space ;hy the same is not happening ;ith
P.]n P. ata is o!er;ritten e!ery time" n P&. e!ery change creates a ne;
!ersion on .A' comman" #he compression of P&. releases the space occupie byall prior !ersions an so you are getting more space" #hat is the reason ;hy
fre%uent sa!e commans are a!oie in P&."
&oes it mean that can retrie!e the pre!ious !ersion !" a member in P&.]f you in>t compress your P&. you can retrie!e all the prior !ersions before
the pre!ious compression" ,ut .P in>t pro!ie option for this" Kou ha!e to go forsome thir part prouct lit ;ant to stay late Bust to submit a long running Bob" Can scheule
this Bob so that it can automatically submitte at 1/:44 PM]f you are using J'.0 then you can try ;ith &'A&L*' comman" ,ut most
of the installations ha!e J'./" n J'./ istribute en!ironment such commans are
not pro!ie" ,ut you can o it if you
-
8/15/2019 JCL 1.0.doc
42/47
Mainframe Refresher Part-1 JCL-Page:?/
#han
-
8/15/2019 JCL 1.0.doc
43/47
-
8/15/2019 JCL 1.0.doc
44/47
Mainframe Refresher Part-1 JCL-Page:??
Qo; to e$ecute the Bob at remote noe]
Coe the J'./ control statement 57R+#' ='S remote-noe or 57='S remote-noe
-
8/15/2019 JCL 1.0.doc
45/47
Mainframe Refresher Part-1 JCL-Page:?E
.imple Program
CB! !ISTIDENTIFIC"TION DIISION.PROGR"M?ID.S"NSOFT.*
ENIRONMENT DIISION.*D"T" DIISION.%ORKING?STOR"GE SECTION.01 %S?"RI"B!ES.
0; %S?EMP?N"ME PIC X(10).0; %S?EMP?"GE PIC @(02).0; %S?EMP?CITY PIC X(10).0; %S?EMP?S"! PIC S@(0$).0; %S?EMP?BONUS PIC S@(0$).0; %S?EMP?CTC PIC S@(0$).
*PROCEDURE DIISION.*
MOE 6MUTHU6 TO %S?EMP?N"ME
MOE 2@ TO %S?EMP?"GEMOE 6TRICHY6 TO %S?EMP?CITYMOE
-
8/15/2019 JCL 1.0.doc
46/47
Mainframe Refresher Part-1 JCL-Page:?
000021 MOE000#;$ D20 201< "0BD MC 22($,2),1$@(10) (B!%=0):22 PGM!IT "T :1$;
000022 COMPUTE000#;E F2' D0F$ 201E P"CK 2'$(;,1#),#0($,2) TS2=0 %S?EMP?BONUS000#
-
8/15/2019 JCL 1.0.doc
47/47
Mainframe Refresher Part-1 JCL-Page:?2
%ORKING?STOR"GE S"NSOFTB!%?05 2@$@0B$:000000 2@$@0B$ D'E'E#C$ E''0'0'0 '0'0F2F@ E#D@C@C#
C$E$'0'0 '0'0F0F0 F0F