Está en la página 1de 14

BREVES NOTAS DE JCL

INTRODUCCION
Para que un programa se ejecute en e computa!or " rea#ce e tra$ajo para e cua %ue !#se&a!o
!e$e procesarse en e S#stema Operat#'o() Esto s#gn#%#ca que e programa!or* a!em+s !e !#se&ar
e programa* !e$e rea#,ar c#ertas tareas !e contro !e tra$ajos para #n!#care a S#stema Operat#'o
a ejecuc#-n !e !#c.o programa " os arc.#'os que ut##,a() Las sentenc#as !e contro menc#ona!as
se !e%#nen como Jo$ Contro Language /JCL0
ESTRUCTURA DE UNA SENTENCIA JCL
De%#n#c#-n() Una sentenc#a JCL cons#ste !e uno o m+s reg#stros !e 12 $"tes() Ca!a reg#stro es
s#m#ar a una tarjeta !e 12 coumnas() Ca!a sentenc#a !e JCL se !#'#!e -g#camente en c#nco
campos() Estos no t#enen que aparecer s#empre en to!as as sentenc#as() Los c#nco campos en
que se !#'#!e una sentenc#a JCL son3
4() I!ent#%#ca!or ///0 en coumnas 4 " 5( Coumnas !e#m#ta!oras //*0( Comentar#os ///*0
5() Nom$re Coumna 6* m+7#mo 1 caracteres a%anum8r#cos /99LRCD9DPE)
6() Operac#-n T#po !e sentenc#a !e contro /JOB, EXEC, DD, PROC, JCLLIB, PEND0
:() Opera!ores No !e$en e7#st#r espac#os /PGM=ICEMAN,COND=(0,LT))
;() Comentar#os <ormato #$re
Identificd!"#
E campo #!ent#%#ca!or #n!#ca a S#stema que se trata !e una sentenc#a !e JCL(
Este #!ent#%#ca!or se compone !e o s#gu#ente3
Las coumnas 4 " 5 para to!as as sentenc#as !e JCL* a e7cepc#-n !e a sentenc#a
!e#m#ta!ora o !e term#no* s#empre son //(
Las coumnas 4 " 5 !e a sentenc#a !e#m#ta!ora constan !e /*
Las coumnas 4* 5 " 6 !e a !ecarac#-n !e comentar#o constan !e //* mas e te7to !e
comentar#o
Sentenc#a Nua() La sentenc#a nua es opc#ona " soo consta !e // en as coumnas 4 " 5*
Cuan!o se co!#%#ca !e$e ser a =t#ma sentenc#a !e JOB o Proceso "a que marca e %#na
!e proceso(
N!$%"e#
E campo !e nom$re #!ent#%#ca una sentenc#a en part#cuar " que e S#stema pue!e re%erenc#ar a
ea() Para nom$rar una sentenc#a JCL o$ser'e as s#gu#entes restr#cc#ones3
E nom$re !e$e empe,ar en a coumna 6
Este !e$e !e tener una ong#tu! m>n#ma !e 4 " m+7#ma !e 1 caracteres a%anum8r#cos o
nac#onaes /?* @* A0(
E pr#mer car+cter !e$e ser a%a$8t#co o car+cter nac#ona
De$e e7#st#r un espac#o en $anco* m>n#mo* entre e nom$re " o que s#gue
Ejempo3
99LRCD9DPE
O&e"ci'n#
E campo !e operac#-n espec#%#ca e t#po !e sentenc#a !e contro JCL* Las opc#ones son3 JOB,
EXEC, DD, PROC, JCLLIB " PEND() Co!#%#que e campo !e operac#-n o$ser'an!o o s#gu#ente3
E campo !e operac#-n s#gue s#empre a campo !e Nom$re
E campo !e operac#-n !e$e ser prece!#!o " segu#!o !e* por o menos* un espac#o en
$anco
Ejempo3
//LRCD9DPE JOB
O&e"d!"e(#
E campo !e opera!ores cons#ste !e par+metros Pos#c#onaes "9o par+metros Be"Cor! /Paa$ra
ca'e0* ut##,a!os en e proceso separa!os por comas(
Co!#%#que e campo !e opera!ores o$ser'an!o o s#gu#ente3
En os opera!ores no se perm#ten espac#os en $anco* a menos que %ormen parte !e
un 'aor encerra!o entre ap-stro%os(
Ejemplo: PGM=ICEMAN,COND=(0,LT)
E campo !e opera!ores s#gue s#empre a campo !e operac#-n o antes !e a coumna
4D " no !e$en estar !espu8s !e a coumna E4(
E campo !e par+metros /Opera!ores0 se !#'#!e en !os t#pos3 Parmetros Posicionales " Keyword(
1. Parmetros Posicionales:
To!os os par+metros Pos#c#onaes se !e$en co!#%#car pr#mero " en una secuenc#a espec#%#ca
!entro !e campo !e opera!ores() La ausenc#a !e un par+metro pos#c#ona* !e$e ser !enota!a por
una coma cuan!o "a no e7#stan mas par+metros pos#c#onaes(
Ejempo !e par+metro pos#c#ona3
//LRCD9DPE JOB (EERC,1),'RC',
2. Parmetros Keyword:
Los par+metros Be"Cor! pue!en estar en cuaqu#er parte !entro !e campo opera!ores " pue!en
estar en cuaqu#er or!en " s#guen a os par+metros pos#c#onaes() Los par+metros Be"Cor! se
caracter#,an por ser una paa$ra ca'e segu#!a por un s#gno !e #gua!a! /F0 e #n%ormac#-n 'ar#a$e(
Ejempos !e par+metro Ge"Cor!3
//HACD9D05 EXEC PGM=ICEMAN,COND=(0,LT)
//TCDF0000 DD DSN=CLFP.TC.FIX.STDRVSAM.TCDF0001,DISP=SHR
//SYSPRINT DD SYSOUT=
Li(t( de )*%&"+$et"!(,-
Agunas 'eces un par+metro po!r+ contener su$par+metros m=t#pes() Estos su$par+metros son
separa!os por comas() Tam$#8n pue!en ser pos#c#onaes o Be"Cor! " s#guen a m#sma rega !e
secuenc#a() Los su$par+metros m=t#pes !e$en estar encerra!os entre par8ntes#s* a menos que
sea un soo su$par+metro " no este prece!#!o por una coma(
Regla() Ut##ce as comas para separar os par+metros pos#c#onaes* os Be"Cor! " su$par+metros(
Ejempos !e par+metros m=t#pes3
DISP!NE"#CATL$#DELETE) !%e&'o() *o+ ,-.p/(0me1(o,)
DCB!DSOR$PS#LRECL20#RECF3FB#BL4SI5E0) !%e&'o() *o+ ,-.p/(0me1(o,
1/m.67+ %e&'o())
8OL!###9:) !%e&'o() *o+ ,-.p/(0me1(o, po,6*6o+/le,)
C!$ent"i!(#
E campo !e comentar#os cont#ene #n%ormac#-n que e programa!or !e%#ne como a"u!a* s#
cons#!era pert#nente* cuan!o se est+ co!#%#can!o ca!a sentenc#a JCL(
Ejempos !e comentar#os3
//; SISTE3A: BR !3OD<LO DE BONO DE RECONOCI3IENTO) ;
//; OBJETI8O: ;
//; DE LA TABLA =HDTCON SE TO3AN LOS RE$ISTROS =<E F<ERON INSERTADOS ;
//; POR EL APLICATI8O 3EDIANTE =H ;
//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
//; PASO>>0: $ENERA ARCHI8O CA3BIO DE ESTADO EN EL DIA ;
//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
//; PASO 95: PROCESO =<E EN8IO A CONTROL?D LISTADO $ENERADO ;
REGLA GENERAL DE CODI.ICACION
Co!#%#que e campo #!ent#%#ca!or #n#c#an!o en a coumna 4 " e campo !e nom$re
#nme!#atamente !espu8s !e pr#mero s#n que #nter'enga n#ng=n $anco en eo(
!!HACD9D0"
Co!#%#que e campo !e operac#-n* par+metros /opera!ores0 " comentar#os en %orma #$re(
La %orma #$re #n!#ca que no se neces#ta #n#c#ar en una coumna en part#cuar* sa'o as
restr#cc#ones !e cont#nu#!a! que se mant#enen() Entre campo " campo !e$e e7#st#r* por o
menos* un espac#o en $anco /e espac#o en $anco s#r'e como !e#m#ta!or entre os
campos0(
NO co!#%#que n#ng=n campo !espu8s !e a coumna E4* a e7cepc#-n !e campo !e
comentar#os(
!!HACD9D0" EXEC PGM=ICEMAN,COND=(0,LT)
!!
!! ESTO ES UN EJEMPLO
#n!#ca!or nom$re operac#-n comentar#os par+metros u opera!ores
REHLA DE CONTINUACION
S#gu#en!o a un par+metro competo o su$par+metro .asta a coumna E4 o antes* a %#na
!e a sentenc#a !e$e e'ar una coma() Co!#%#que // en as coumnas 4 " 5 !e a sentenc#a
!e cont#nuac#-nI re#n#c#e a co!#%#cac#-n !e os opera!ores entre as coumnas : " 4D(
Para cont#nuar comentar#os co!#%#ca un car+cter que no sea un $anco en a coumna E5()
Otras sentenc#as no requ#eren un car+cter en a coumna E5(
No .a" #m#te para e n=mero !e sentenc#as !e cont#nuac#-n(
Las sentenc#as que no se pue!en cont#nuar son3 Coman!os* Comentar#os* De#m#ta!ora "
Nua(
Ejempos !e cont#nuac#-n !e sentenc#as3
!!TCDF0000 DD DSN=CLFP.TC.FIX.STDRVSAM.TCDF0001,
!! DISP=SHR *o+16+-6)/) empe@/( e+1(e
l/ *ol-m+/ A & >B
!!INPUT010 DD DSN=CLFP.TC.FIX.ENTRADA,
!! DISP=(NE$,CATLG,DELETE),
!! UNIT=%%90,
!! SPACE=(CYL,(&,1),RLSE),
!! DCB=(DSORG=PS,LRECL='0,RECFM=FB,BL(SI)E=0)
)ENTENCIA JOB
P"!&'(it!3 Use a sentenc#a JOB para marcar e #n#c#o !e un proceso e #n!#care a S#stema como
se procesara este jo$ " !e$e ser a pr#mer sentenc#a !e contro JCL !entro !e jo$(
)int/i(#
//jo.+/me JOB po,616o+/l?p/(/me1e(, C#%e&'o()?p/(/me1e(,D #C*omme+1,D
L/ ,e+1e+*6/ JOB *o+,1/ )e */(/*1e(e, )e 6)e+16E6*/*6F+ !! e+ l/,
*ol-m+/, > & 9 m0, *-/1(o */mpo,: +om.(e# ope(/*6F+ !JOB)#
p/(0me1(o, & *ome+1/(6o,G
<+/ ,e+1e+*6/ JOB ,e +e*e,61/ p/(/ */)/ JOBG
C$&! de N!$%"e /jo$name0
Co!#%#que un jo$name para ca!a sentenc#a JOB como se muestra3
Ca!a jo$name !e$e ser =n#co
E jo$name !e$e comen,ar en a coumna 6
E jo$name se componen !e 4 " .asta 1 caracteres a%anum8r#cos o nac#onaes
E pr#mer car+cter !e$e ser a%a$8t#co o nac#ona
A jo$name e suce!e un espac#o en $anco
La nomenclatura del JOB aplicativo para nuestra Institucin se describe en las pginas 42-
43 del Manual de Estndares ! "m#rica $ersin 2%&%& de "gosto de 2&&4%
C$&! de O&e"ci'n
E campo !e operac#-n consta !e a paa$ra JOB " !e$e estar prece!#!a " suce!#!a por a menos
un espac#o en $anco() Esta pue!e #n#c#ar en cuaqu#er coumna(
C$&! de P"+$et"!(
Una sentenc#a JOB t#ene !os t#pos !e par+metros3 Pos#c#onaes " Be"Cor!(
To!os os par+metros son opc#onaes* s#n em$argo* a Instaac#-n pue!e requer#r e par+metro
account#ng " e nom$re !e programa!or(
P"+$et"!( P!(ici!n0e(# Una sentenc#a JOB pue!e contener !os par+metros pos#c#onaes()
Estos !e$en prece!er a to!os os par+metros Ge"Cor!() Se !e$e co!#%#car e par+metro account#ng
pr#mero* segu#!o !e campo programa!or() E par+metro account#ng se usa para conta$##,ar e uso
!e recursos !e procesoI en nuestra #nstaac#-n "a no se ut##,a para conta$##,ar e uso !e recursos*
actuamente se t#enen 5 programas pro!ucto para este %#n e Per%ormance Reporter " e T#'o#
Des#t#on Support(
Par+metros Pos#c#onaes Vaores Prop-s#to
/account)num$erJ*account#ng)
#n%ormat#onK(0
N=mero Conta$e !e 4 a :
caracteres
In%ormac#-n Conta$e !e .asta
461 caracteres
Espec#%#ca un n=mero !e
Conta$##!a! " otro t#po !e
#n%ormac#-n conta$e s# a
Instaac#-n o requ#ere(
En n*e(t" in(t0ci'n 1 n!
(e *(n, &" e(te fin,
2ene"0$ente (!n
inf!"$ti3!(,
Programmers)name Nom$re !e programa!or que
pue!e ser !e 4 a 52 caracteres(
Espec#%#ca en nom$re !e
programa!or* s# a #nstaac#-n o
requ#ere(
En n*e(t" in(t0ci'n 1 n!
(e *(n, &" e(te fin,
2ene"0$ente (!n
inf!"$ti3!(,
Ejempo3
99LPJCLAT2 JOB (EEMC,4),5MC5,
P"+$et"!( 6e17!"d /opera!ores0# Una sentenc#a JOB pue!e contener os s#gu#entes par+metros
Be"Cor!() Se !e$en !e co!#%#car estos par+metros en cuaqu#er or!en !e par+metros s#empre "
cuan!o es antece!an os pos#c#onaes(
Par+metros Be"Cor! Vaores Prop-s#to
CLASSFjo$cass A)M o 2 a N
En Pro!ucc#-n L87#co se
t#enen as cases A* B* C " N
As#gna a JOB una case !e
entra!a
En Pro!ucc#-n* normamente*
se t#enen A* B " en ocas#ones
una num8r#ca(
LSHCLASSFmsgcass Cuaqu#er car+cter a%anum8r#co
en nuestra Instaac#-n !e$e ser
X
In!#ca a case !e sa#!a !e os
mensajes !e S#stema " !e
JOB* a LOH o SPOOL(
LSHLEVELF/JstatementsO
J*messagesO0
Statements3
2 Soo sentenc#as !e JOB
4 To!as as sentenc#as JCL*
#ncu"en!o as !e os
proce!#m#entos
5 Soo sentenc#as JCL
Lessages3
2 Soo mensajes JCL
4 Lensajes JCL* JES5 " !e
opera!or
As#gna a JOB os n#'ees !e
mensajes !e LOH o SPOOL(
Statements3 In!#ca cuaes ser+n
gra$a!os en e #sta!o !e
S#stema(
Lessages3 In!#ca que mensajes
!e u$#cac#-n9term#nac#-n ser+n
gra$a!os en e #sta!o !e
S#stema(
SCPENVFsc.e!ue!)
en'#roment
SEBATPROD As#gna a JOB e
am$#ente/m+qu#na0 en que 'a a
ejecutarse(
Requer#!o cuan!o se t#ene una
#nstaac#-n con m+qu#nas
compart#!as(
REHIONF'aueB VaueB3 n=mero !e 4 a ; !#g#tos
!es!e 4B .asta 4D616B(
En Pro!ucc#-n e 'aor s#empre
!e$e ser REHIONF2L
Espec#%#ca a memor#a en
G#o$"tes que se as#gna a JOB(
En Pro!ucc#-n e 'aor s#empre
!e$e ser REHIONF2L* para
que e S#stema e as#gne a JOB
a memor#a que requ#era(
NOTI<QFUser#! User#!3 De 4 a E caracteres
a%anum8r#cos
So#c#ta a S#stema un mensaje
!e not#%#cac#-n a usuar#o TSO(
N! (e &e"$ite en P"!d*cci'n
TILEF/Jm#nutesOJ*secon!sO0 L#nutesF 4 a 4:6N
Secon!sF 4 a ;N
Espec#%#ca e t#empo m+7#mo !e
res#!enc#a en memor#a !e JOB
!entro !e S#stema(
N! (e &e"$ite en P"!d*cci'n*
porque as cases !e ejecuc#-n
"a t#enen asoc#a!o e t#empo
m+7#mo !e res#!enc#a 4::2
m#nutos(
RESTARTFstepname
stepname(procstepname
Ap#ca a pr#mer paso
Stepname3 A paso nom$ra!o
Procstepname3 nom$re !e
proce!#m#ento
Le #n!#ca a JOB que com#ence
!es!e un paso en espec#%#co(
N! (e &e"$ite en P"!d*cci'n,
porque to!o JOB !e$e #n#c#ar
en e pr#mer paso " en caso !e
canceac#ones 8 re#n#c#o se
.ace con e CONTROL)L(
PASSRORDF/passCor! JneC)
passCor!O0
PassCor!3 De 4 a 1 caracteres
a%anum8r#cos o nac#onaes
I!ent#%#ca a protecc#-n actua
!e RAC< o as#gna una nue'a(
No se requ#ere porque e JOB
se ejecuta $ajo
CONTROL)L " en RAC<
e CONTROL)L t#ene to!a
a autor#!a! necesar#a(
TQPRUNFPOLD
JCLPOLD
SCAN
POLD3 Ret#ene e proceso !e
JOB* .asta que e opera!or o
#$ere(
JCLPOLD3 Ret#ene e proceso
antes que se procese e JCL*
.asta que e opera!or o #$ere(
SCAN3 Re'#sa s#nta7#s JCL
Requ#ere a S#stema un proceso
espec#a o atenc#-n espec#a !e
opera!or(
N! (e &e"$ite en P"!d*cci'n
C$&! de C!$ent"i!(
E campo !e comentar#os s#gue #nme!#atamente a !e par+metros* me!#an!o entre eos un espac#o
en $anco* a menos() Aunque este campo pue!e #r en cuaqu#er parte* a pr#nc#p#o o a %#na(
L!c0i8ci'n dent"! de0 JCL
Una sentenc#a JOB !e$e ser a pr#mera !e ca!a JOB() Una sentenc#a JOB nunca aparece en
proce!#m#entos cataoga!os(
Ejempos !e Sentenc#a JOB3
!!LFLD0A%X JOB (000,EXP),
!! CLASS=A,
!! MSGCLASS=X,
!! REGION=0M,
!! MSGLEVEL=(1,1)
!!
!!LRCD9DPE JOB (EERC,1),'RC',
!! CLASS=S,
!! MSGCLASS=X,
!! MSGLEVEL=(1,1),
!! SCHENV=SEBATPROD,
!! REGION=0M
!!
)ENTENCIA //JOBLIB DD
P"!&'(it!3 En a sentenc#a DD con nom$re JOBLIB se co!#%#can as $#$#otecas en !on!e ra!#can
os m-!uos !e carga !e os Programas Ap#cat#'os que se ejecutan en e jo$ o en os procesos()
No se co!#%#ca cuan!o se ejecutan Ut#er>as !e S#stema o Ut#er>as /Programas Pro!ucto0 que t#ene
sus $#$#otecas en e STEPLIB(
L!c0i8ci'n dent"! de0 JCL
Una sentenc#a JOBLIB DD !e$e estar !espu8s !e a sentenc#a JOB " antes !e a sentenc#a
JCLLIB* s> a t#ene* o antes !e a sentenc#a ESEC(
Ejempos !e JOBLIB3
!!JOBLIB DD DSN=CLDEAFP.PU.LOADLIB.BATCH,DISP=SHR
!! DD DSN=CLDEAFP.PU.LOADLIB.RUTINAS,DISP=SHR
!! DD DSN=LTFD.ALTAMIRA.LOADLIB.BATCH,DISP=SHR
!! DD DSN=LTFD.ALTAMIRA.LOADLIB.RUTINAS,DISP=SHR
!! DD DSN=DDA1.SDSNLOAD,DISP=SHR
!!
!!JOBLIB DD DSN=MBVD.LOADLIB.BATCH,DISP=SHR
!! DD DSN=MBVD.LOADLIB.RUTINAS,DISP=SHR
!! DD DSN=LDB&MXD0.DBD1.SDSNLOAD,DISP=SHR
!!
)ENTENCIA JCLLIB
P"!&'(it!3 La sentenc#a JCLLIB #!ent#%#ca a $#$#oteca !on!e ra!#ca e proceso " !e$e co!#%#carse
antes !e a sentenc#a ESEC !on!e se ama a proceso(
)int/i(#
//l6.+/me JCLLIB C%e&'o()?p/(/me1e(,D #C*omme+1,D
L/ ,e+1e+*6/ JCLLIB *o+,1/ )e */(/*1e(e, )e 6)e+16E6*/*6F+ !! e+
l/, *ol-m+/, > & 9 m0, +om.(e# ope(/*6F+!JCLLIB)# p/(0me1(o, &
*ome+1/(6o,G
C$&! de N!$%"e /l6.+/me0
E #$name no es opc#ona se requ#ere !e$#!o a o s#gu#ente3
Re%erenc#a para e S#stema para $uscar a Proc(
Los nom$res '+#!os son M9LIB o PROCLIB
C$&! de O&e"ci'n
E campo !e operac#-n consta !e a paa$ra JCLLIB " !e$e estar prece!#!a " suce!#!a por a
menos un espac#o en $anco()
C$&! de P"+$et"!(
En una sentenc#a JCLLIB soo e7#ste e par+metro3 Be"Cor!( ORDERF
Par+metro Be"Cor! Vaores Prop-s#to
ORDERF#$rar")name #$rar")name3
Nom$re !e $#$#oteca(
Nom$re !e a $#$#oteca !on!e
ra!#ca e Proc a ejecutar(
C$&! de C!$ent"i!(
E campo !e comentar#os se s#gue a !e par+metros s#empre " cuan!o e7#sta por o menos un
espac#o en $anco entre eos(
L!c0i8ci'n dent"! de0 JCL
Una sentenc#a JCLLIB !e$e co!#%#carse antes !e a sentenc#a ESEC !on!e se ama a proceso(
Ejempos !e Sentenc#as JCLLIB3
//;
!!MYLIB JCLLIB ORDER=CLDEAFP.(I.PROCLIB
//;
//L4ID0090 EXEC L4IDP090#FECHAHHODATE
//;
//;
!!PROCLIB JCLLIB ORDER=MBVP.ALTAMIRA.PROCLIB
//;
//3PJCI30> EXEC 3PPCI309
//;
)ENTENCIA EXEC
P"!&'(it!3 La sentenc#a ESEC /Ejecutar0 #!ent#%#ca e pr#nc#p#o !e un paso !e jo$* e programa
cataoga!o o e proce!#m#ento IN STREAL !e un paso " !e$e ser a pr#mera sentenc#a JCL !e
contro para ese paso(
Un JOB pue!e tener un m+7#mo !e 5;; pasos !e ESEC() Este m+7#mo #ncu"e to!os os pasos !e
cuaqu#er proce!#m#ento que sea ama!o por una sentenc#a ESEC() En nuestra #nstaac#-n os
JOBs o Procesos no !e$er+n tener m+s !e 52 pasos(
El n'mero de pasos del JOB aplicativo para nuestra Institucin se describe en la pgina 42
del Manual de Estndares ! "m#rica $ersin 2%&%& de "gosto de 2&&4%
)int/i(#
//,1ep+/me EXEC po,616o+/l?p/(/me1e(, C#%e&'o()?p/(/me1e(,D #C*omme+1,D

L/ ,e+1e+*6/ EXEC *o+,1/ )e */(/*1e(e, )e 6)e+16E6*/*6F+ !! e+ l/,
*ol-m+/, > & 9 m0, *-/1(o */mpo,: +om.(e# ope(/*6F+!EXEC)#
p/(0me1(o, & *ome+1/(6o,G
Al me+o, -+/ ,e+1e+*6/ EXEC ,e +e*e,61/ p/(/ */)/ JOBG
C$&! de N!$%"e /,1ep+/me0 o /paso0
E stepname es opc#ona pero se requ#ere !e$#!o a o s#gu#ente3
Re%erenc#a a un paso anter#or !e JOB
Para a&a!#r sentenc#as DD en un proce!#m#ento cataoga!o
Ejecutar un RESTART
Para #!ent#%#car a un paso part#cuar !entro !e un proce!#m#ento /cataoga!o o IN STREAL0
Co!#%#que e nom$re !e paso !e acuer!o a o s#gu#ente3
Ca!a nom$re !e$e ser =n#co
E nom$re !e$e comen,ar en a coumna 6
E nom$re se compone !e 4 " .asta 1 caracteres a%anum8r#cos o nac#onaes
E pr#mer car+cter !e$e ser a%a$8t#co o nac#ona
A nom$re e !e$e segu#r un espac#o en $anco* a menos
La nomenclatura del nombre de los pasos en el JOB( para nuestra Institucin se describe en
las pginas 43-44 del Manual de Estndares ! "m#rica $ersin 2%&%& de "gosto de 2&&4%
C$&! de O&e"ci'n
E campo !e operac#-n consta !e a paa$ra ESEC " !e$e estar prece!#!a " suce!#!a por a menos
un espac#o en $anco()
C$&! de P"+$et"!(
En una sentenc#a ESEC e7#sten !os t#pos !e par+metros3 Pos#c#onaes " Be"Cor!(
No ut##ce a paa$ra ESEC como par+metro s#m$-#co* nom$re !e paso o et#queta(
P"+$et"!(# Una sentenc#a ESEC !e$e contener uno !e os par+metros s#gu#entes PHL o e
nom$re !e proce!#m#ento cataoga!o /PROC0(
Par+metros Vaores Prop-s#to
PHLFprogram)name Program)name3
Nom$re !e programa a
ejecutar() Este !e$e ser !e 4 a
1 caracteres(
Nom$re !e programa que e
s#stema !e$er+ ejecutar()
La nomenclatura del programa
se describe en la pgina 21 de
Estndares CDR ersi!n 2.1.2
PROC proce!ure)name Proce!ure)name3
Nom$re !e proce!#m#ento()
Este !e$e ser !e 4 a 1
caracteres(
Nom$re !e proce!#m#ento
cataoga!o o IN STREAL que
e s#stema !e$e ejecutar(
CONDF//co!e*operator0
J*co!e*operator0OK0
Co!eF 2 a :2N;
Operator3
HT
HE
ET
NE
LT
LE
EVEN3 Ejecuta e paso
aunque e paso anter#or .a"a
term#na!o anormamente
ONLQ3 Ejecuta e paso soo
que e paso anter#or term#ne
anormamente
E'a=a e c-!#go !e retorno !e
paso anter#or /o anter#ores0 "
!eterm#na s> cont#nua e
proceso o no(
PARLF#n%ormat#on In%ormat#on3
Ca!ena !e caracteres !e .asta
422 pos#c#ones( Pue!e ser
a%anum8r#co o num8r#co(
A%ecta soamente a programa
en cuest#-n
Pasa 'aores 'ar#a$es a
programa que se est+
ejecutan!o
C$&! de C!$ent"i!(
E campo !e comentar#os se s#gue a !e par+metros s#empre " cuan!o e7#sta por o menos un
espac#o en $anco entre eos(
L!c0i8ci'n dent"! de0 JCL
Una sentenc#a ESEC !e$e ser a pr#mera !e ca!a JOBSTEP* o !espu8s !e a sentenc#a JOB o
!espu8s !e a sentenc#a JOBLIB DD
Ejempos !e Sentenc#as ESEC3
!!
!!L(ID00&0 EXEC L(IDP0&0,FECHA=**ODATE
L/ ,e+1e+*6/ EXEC 6+Io*/ /l p(o*e,o )e+om6+/)o L4IDP090 & le p/,/ I/lo(e,
/l mome+1o )e eje*-*6F+ me)6/+1e el p/(0me1(o FECHA
!!PECPCA10 EXEC PGM=ADUUMAIN,
!! PARM='DBD1,PECPCA0+.UNPE',NE$,,MSGLEVEL(1)',
!! COND=(+,LT)
L/ ,e+1e+*6/ EXEC )el p/,o PECPCA>0 6+Io*/ /l p(oJ(/m/ )e+om6+/)o
AD<<3AIN & le p/,/ I/lo(e, /l mome+1o )e eje*-*6F+ me)6/+1e el PAR3
!!MCD0,O0" EXEC PGM=IOACND,PARM='ADD COND MRJC010P-IN-PR $DATE'
L/ ,e+1e+*6/ EXEC )el p/,o 3CD0BO05 6+Io*/ /l p(oJ(/m/ )e+om6+/)o IOACND
& le p/,/ I/lo(e, /l mome+1o )e eje*-*6F+ me)6/+1e el PAR3
)ENTENCIA DD
P"!&'(it!3 La sentenc#a DD /Data De%#n#t#on0 se ut##,a para !escr#$#r un arc.#'o o $#$#oteca "
espec#%#car os recursos !e entra!a " sa#!a necesar#os para e programa(
Rec*"(!(# Para a ejecuc#-n !e un programa se requ#eren !os t#pos !e recursos3 DATA SETS "
SQSOUT(
Rec*"(!( DATA )ET)# Para ejecutar un programa se neces#ta que se e sum#n#stren arc.#'os !e
entra!a "9o sa#!a o !e entra!a)sa#!a !on!e res#!a a #n%ormac#-n " !on!e se gra$e !urante a
ejecuc#-n !e programa(
Rec*"(!( )9)O:T# Para ejecutar un programa se neces#ta que se e sum#n#stren c#ertos arc.#'os
!e sa#!a a LOH o SPOOL* !on!e se gra$e #n%ormac#-n !urante a ejecuc#-n !e programa o a
%#na !e a ejecuc#-n( Estos recursos son arc.#'os maneja!os por e s#stema()
Recursos DATA SETS
)int/i(#
//))+/me DD po,616o+/l?p/(/me1e(, C#%e&'o()?p/(/me1e(,D #C*omme+1,D
L/ ,e+1e+*6/ DD *o+,1/ )e */(/*1e(e, )e 6)e+16E6*/*6F+ !! e+ l/,
*ol-m+/, > & 9# )e -+ +om.(e# -+/ ope(/*6F+ !DD)# p/(0me1(o, &
*ome+1/(6o, !e,1o, Kl16mo, ,olo ,L ,e -,/+ o ,o+ +e*e,/(6o,)
C$&! de N!$%"e /))+/me0
Se requ#ere una sentenc#a DD para ca!a arc.#'o
Cuan!o se espec#%#que una sentenc#a DD 'a#!ar que sea =n#ca !entro !e paso !e JOB
La sentenc#a DD pue!e ser espec#%#ca!a en cuaqu#er secuenc#a " !e$e estar !espu8s !e
a sentenc#a ESEC !entro !e paso !on!e se ut##ce(
S> !!names aparecen !up#ca!as !entro !e m#smo paso !e JOB* en e caso !e arc.#'os
!e sa#!a e S#stema ejecuta a u$#cac#-n !e espac#o en e !#spos#t#'o espec#%#ca!o para
am$as !!names* s#n em$argo* en to!os os casos* para as re%erenc#as !#rectas que se
.agan soo ap#can a a !!name que est+ en pr#mer ugar(
Co!#%#que e nom$re !e !!name !e acuer!o a o s#gu#ente3
Ca!a nom$re !e$e ser =n#co
E nom$re !e$e comen,ar en a coumna 6
E nom$re se compone !e 4 " .asta 1 caracteres a%anum8r#cos o nac#onaes
E pr#mer car+cter !e$e ser a%a$8t#co o nac#ona
A nom$re e !e$e segu#r un espac#o en $anco* a menos
Un !!name se om#te soo cuan!o a sentenc#a !escr#$e un arc.#'o concatena!o " e
prece!e a !e%#n#c#-n !e arc.#'o #n#c#a
C$&! de O&e"ci'n
E campo !e operac#-n para una sentenc#a DD cons#ste !e os caracteres DD " !e$e estar
prece!#!a " suce!#!a por a menos un espac#o en $anco()
C$&! de P"+$et"!(
Una sentenc#a DD t#ene !os t#pos !e par+metros3 Pos#c#onaes " Be"Cor!(
Los par+metros son opc#onaes() S#n em$argo se !e$e !ejar en $anco e !!name cuan!o se trate
!e una sentenc#a DD que est+ concatena!a(
P"+$et"!( P!(ici!n0e(# S> se co!#%#ca* a este e !e$e prece!er un par+metro Be"Cor!(
Par+metros Pos#c#onaes Vaores Prop-s#to
U U Rec#$#r !atos '>a IN STREAL
que no cont#enen sentenc#as
JCL
DATA DATA para arc.#'os que s>
cont#enen sentenc#as JCL
DULLQ No espec#%#ca espac#o*
!#spos#c#-n o nom$re !e
arc.#'oI soo para arc.#'os !e
entra!a "9o sa#!a(
P"+$et"!( 6e17!"d /opera!ores0# Una sentenc#a DD pue!e contener os s#gu#entes par+metros
Be"Cor!() Estos par+metros se pue!en co!#%#car en cuaqu#er or!en(
Par+metros Be"Cor! Vaores Prop-s#to
DSNF Nom$re !e arc.#'o o $#$#oteca I!ent#%#ca e arc.#'o ut##,a!o en
e paso
DISPF /esta!o*term#nac#-n)
norma*term#nac#-n)anorma0
/NER*CATLH*DELETE0
esta!o3
NER* SPR* OLD* LOD
Term#nac#-n)norma3
DELETE* BEEP* PASS*
CATLH* UNCATLH
Term#nac#-n)anorma3
DELETE* BEEP* PASS*
CATLH* UNCATLH
In!#ca a S#stema a
!#spon#$##!a! !e arc.#'o
De%#n#c#-n est+n!ar para
arc.#'os !e sa#!a nue'os
In!#ca a S#stema a
!#spon#$##!a! !e arc.#'o
Term#nac#-n)norma3
In!#ca como que!a e arc.#'o a
%#na#,ar correctamente e JOB
Term#nac#-n)anorma3
S#m#ar a anter#or* ap#ca soo
en caso !e term#nac#-n anorma
UNITF 66N2
R6:NR
Espec#%#ca e t#po !e un#!a!
!on!e se amacenar+ e
VTSS25 arc.#'o()
SPACEF /CQL*/espac#o)
pr#mar#o*espac#o)
secun!ar#o0*RLSE0 " para e
caso !e $#$#otecas
part#c#ona!as3 /CQL*/espac#o)
pr#mar#o*espac#o)
secun!ar#o*!#r0*RLSE0
Soo para arc.#'os que 'an a
!#sco( Determ#na a cant#!a! !e
espac#o que e arc.#'o requ#ere(
E7#sten otras un#!a!es para
espac#os TRB " BLB pero en
nuestra #nstaac#-n soo se
perm#te C9L
DCBF /REC<LF<
<B
V
VB
LRECLFong#tu! !e reg#stro
BLBSIMEF2
DSORHFPS
PO
BU<NOF62
I!ent#%#ca e t#po !e reg#stro
B"tes !e ong#tu!* espec#%#ca a
ong#tu! tota !e reg#stro en
$"tes
Son os $"tes !e $oque -g#co*
En nuestra #nstaac#-n s#empre
!e$er ser cero para que e
s#stema e cacue 8 opt#mo(
T#po !e organ#,ac#-n que t#ene
e arc.#'o
PS arc.#'o secuenc#a %>s#co
PO arc.#'o part#c#ona!o
Para as#gnar $u%%ers !e ectura
o escr#tura un#camente a
arc.#'os ma"ores a 4*222 CQL(
VOLULEF Pr#'ate* SERFn=mero)ser#e Espec#%#ca e nom$re !e
'oumen que reac#ona a a
un#!a!() Por ejempo3
VOL=SER= FX1179
LABELF /!ata)set)seq)no*a$e)t"pe0 Et#queta !e c#nta magn8t#ca
!ata)set)seq)no3
Pos#c#-n reat#'a !e ugar que
ocupa e arc.#'o en a c#nta
a$e)t"pe3
I!ent#%#ca!or !e t#po !e et#queta
para una c#nta magn8t#ca* e
cua pue!e ser SL* NL o BLP
ESPDTF ""!!! Espec#%#ca una %ec.a !e
e7p#rac#-n !e arc.#'o en c#nta
magn8t#ca
""() !os !>g#tos para e a&o* !!!
tres !>g#tos para e !>a 222)6DD
E 'aor que se !e$e !e
co!#%#car en nuestra Instaac#-n
es NN222() <orma parte !e
LABELF/4*SL*ESPDTFNN2220
DLLF De#m#ter Vaor con e cua se #n!#ca a
term#nac#-n !e !atos !e
entra!a '>a IN STREAL
Recursos SQSOUT3
Para ejecutar un programa se neces#ta que se e sum#n#stren c#ertos arc.#'os !e sa#!a a LOH o
SPOOL* estos arc.#'os os requ#ere para gra$ar #n%ormac#-n !e a term#nac#-n !e programa*
DULPS en casos !e canceac#-n o esta!>st#cas !e a ejecuc#-n !e m#smo( Estos recursos son
arc.#'os maneja!os por e S#stema()
)int/i(#
//))+/me DD %e&'o()?p/(/me1e(,D
L/ ,e+1e+*6/ DD *o+,1/ )e */(/*1e(e, )e 6)e+16E6*/*6F+ !! e+ l/,
*ol-m+/, > & 9# )e -+ +om.(e# -+/ ope(/*6F+ !DD) & el p/(0me1(o
SYSOUT=
C$&! de N!$%"e /))+/me0
Se requ#ere una sentenc#a DD para ca!a recurso SQSOUT
Cuan!o se espec#%#que una sentenc#a DD 'a#!ar que sea =n#ca !entro !e paso !e JOB
La sentenc#a DD pue!e ser espec#%#ca!a en cuaqu#er secuenc#a " !e$e estar !espu8s !e
a sentenc#a ESEC !entro !e paso !on!e se ut##ce(
S> !!names aparecen !up#ca!as !entro !e m#smo paso !e JOB* en to!os os casos as
re%erenc#as !#rectas que .aga e programa soo ap#ca a a !!name que est+ en pr#mer
ugar(
C$&! de O&e"ci'n
E campo !e operac#-n para una sentenc#a DD cons#ste !e os caracteres DD " !e$e estar
prece!#!a " suce!#!a por a menos un espac#o en $anco()
C$&! de P"+$et"!(
Una sentenc#a DD para un recurso SQSOUT soo t#ene e par+metro SQSOUTFU
Ejempos !e recursos SQSOUT3
!!SYSOUT DD SYSOUT=
!!SYSPRINT DD SYSOUT=
!!UTPRINT DD SYSOUT=
!!SYSTSPRT DD SYSOUT=
!!SYSABEND DD SYSOUT=
!!SYSABOUT DD SYSOUT=
!!.RLSDB& DD SYSOUT=
!!SYSUDUMP DD SYSOUT=
)ENTENCIA DELIMITADORA
P"!&'(it!3 Ut##ce una sentenc#a !e#m#ta!ora para #n!#car e %#n !e !atos o reg#stros transm#t#!os
'>a IN STREAL(
)int/i(#
! /01234567819:
L/ ,e+1e+*6/ !e#m#ta!ora *o+,1/ )e */(/*1e(e, )e 6)e+16E6*/*6F+ ! e+
l/, *ol-m+/, > & 9# *ome+1/(6o, !e,1o, Kl16mo, ,olo ,L ,e -,/+ o
,o+ +e*e,/(6o, & ,6emp(e )e.e M/.e( -+ e,p/*6o o */(0*1e( e+ .l/+*o
e+ l/ *ol-m+/ :)
Ejempo !e uso !e a sentenc#a !e#m#ta!ora en un JCL
!!LHAD0FIM JOB (EEHA,1),'HA',
!! SCHENV=SEBATPROD,
!! CLASS=B,
!! MSGCLASS=X,
!! MSGLEVEL=(1,1),
!! REGION=0M
!!
!!JOBLIB DD DSN=CLDEAFP.PU.LOADLIB.BATCH,DISP=SHR
!! DD DSN=CLDEAFP.PU.LOADLIB.RUTINAS,DISP=SHR
!! DD DSN=LTFD.ALTAMIRA.LOADLIB.BATCH,DISP=SHR
!! DD DSN=LTFD.ALTAMIRA.LOADLIB.RUTINAS,DISP=SHR
!! DD DSN=DDA1.SDSNLOAD,DISP=SHR
!!
!!MYLIB JCLLIB ORDER=CLDEAFP.HA.PROCLIB
!!
!!LHAD0FIM EXEC LHADPFIM,FECHA=**ODATE,ORDER=**RN
!!
!!HAPFIM1".SYSIN DD
DELETE ( CLDEAFP.HA.FIX.F**ODATE.L01;1.HA+C1;00.MOVFUN <
CLDEAFP.HA.FIX.F**ODATE.L01'1.SORT1.MOVFUTT ) PURGE
IF MAXCC=' THEN SET MAXCC=0
! BORRADO ARCHIVOS DE TRABAJO
!!
sentenc#a !e#m#ta!ora comentar#os

También podría gustarte