Вы находитесь на странице: 1из 80

Curso

JCL (Job Control


Language)

JCL (Job Control Language)


Enva (submit) un trabajo al Sistema Operativo
Solicita los dispositivos de entrada o salida
Instrucciones para el S.O. En cuanto a
planificacin de recursos y ejecucin de
aplicaciones
Es un medio de comunicacin entre los
programas y el S.O. Y el hardware

Pg: 2

11/11/2014

Proceso interactivo y batch

Interactivo (on-line):
El envo de un comando supone una respuesta
del ordenador (conversacin)

Batch (por lotes):


Se envan un conjunto de comandos y el
ordenador responde cuando los ha tratado
todos

Pg: 3

11/11/2014

Estructura de una sentencia JCL


//JOBNAME JOB ALBERTO,MSGCLASS=H,NOTIFY=user

Operacin
Nombre

Parmetros

Identificador

Pg: 4

11/11/2014

Restricciones del JCL

Todas las sentencias comienzan con // (cols. 1 y 2)


Se escriben siempre en maysculas
Nombre (opcional)

Operacin (JOB, EXEC, DD)

Operandos (parmetros)

Pg: 5

Comienza en columna 3
Debe empezar por letra
Se permiten A-Z, 0-9, @, #, $

Separado de nombre y operando por al menos un blanco


Comienza antes de col. 17
Terminan antes de col. 72
Se separan por comas (sin blancos entre ellos)
11/11/2014

Tipos de parmetros

Pg: 6

Posicinales

Se identifican por su posicin


Se separan por comas
Si se omite alguno debe codificarse la coma
Si el parmetro omitido es el ltimo no es necesario
codificar la coma

De palabra clave

Se identifican por la palabra que los define


Pueden ir en cualquier orden
Tanto los parmetros posicinales como los de
palabra clave pueden contener subparmetros

Ejemplo: DISP=(NEW,CATLG,KEEP)
11/11/2014

Continuacin de una sentencia

Ninguna sentencia puede exceder la col. 71


Se puede interrumpir una sentencia en cualquier
parmetro o subparmetro, despus de la coma que
lo acompaa
La siguiente lnea comienza por // y se comienza a
escribir entre las col. 4 y 16 (inc.)

//JOBNAME JOB ALBERTO,MSGCLASS=H,NOTIFY=user


Es equivalente a:
//JOBNAME JOB ALBERTO,
//
MSGCLASS=H,
//
NOTIFY=user
Pg: 7

11/11/2014

Comentarios

Lneas completas

En una lnea que contenga parmetros

Se comienzan por //*


Se separan de la coma del ltimo parmetro por
un blanco
Si la lnea se contina debe haber un carcter
no blanco en la columna 72

//* Esto es una lnea de comentario completa


//JOBNAME JOB ALBERTO,
//
MSGCLASS=H,
//
NOTIFY=user esto es un comentario
Pg: 8

11/11/2014

Sentencias bsicas

JOB (1)
Identifica el comienzo de un trabajo

EXEC (1-255)
Identifica un paso (ejecucin de un programa
o procedimiento)

DD (1-3273)
Identifica a cada uno de los ficheros que se
utilizan en cada uno de los pasos

Pg: 9

11/11/2014

JES
ISPF

JES

Iniciador 1 Iniciador 2 Iniciador 3


Clases =
A,J,K,L

Clases =
A,B,C

Clases =
Z,D

SPOOL
Colas de
Entrada

SPOOL
Clase hold

Pg: 10

Colas de
Salida

Impresora
Clases =
A,X

11/11/2014

Sentencia JOB I

Nombre

Se le aplican las restricciones mencionadas


anteriormente

Parmetros posicinales

Informacin de contabilidad. Propia de cada


instalacin
Nombre del programador o comentario.
Mximo 40 caracteres

Ejemplo:

//JOBNAME JOB (2937,A@7),ALBERTO

Pg: 11

11/11/2014

Sentencia JOB II

Parmetros de palabra clave


Control de entrada
CLASS: Clase de entrada. Defecto la clase
asignada en la instalacin
TYPRUN:

HOLD se almacena en la cola de entrada, para


ejecutarse es necesario que sea liberado por el operador
SCAN slo se comprueba el JCL
Defecto el JOB se ejecuta normalmente

Ejemplo:

//JOBNAME JOB ALBERTO,CLASS=A,TYPRUN=SCAN


Pg: 12

11/11/2014

Sentencia JOB III

Control de ejecucin I
ADDRSPC: (no utilizado)
VIRT el JOB se ejecuta en memoria virtual (defecto)
REAL el JOB se ejecuta en memoria real

TIME: ([minutos][,segundos])
Mxima utilizacin de CPU por este JOB
NOLIMIT no hay limite en la utilizacin de CPU
MAXIMUN es lo mismo que TIME=357912

PERFORM=grupo de rendimiento
PRTY: prioridad de ejecucin

Pg: 13

Valor de 0 a 15. 0 = mnima prioridad, 15 = mxima


prioridad
11/11/2014

Sentencia JOB IV

Control de ejecucin II
REGION: tamao de la memoria
El sufijo K indica Kilobytes
El sufijo M indica Megabytes
El sistema ajusta automticamente a mltiplos de 4K

RESTART: nombre de paso, *


Indica desde donde debe comenzarse el JOB
* Indica que se ejecute desde el principio

Ejemplo:

//JOBNAME JOB ALBERTO,REGION=8192K,RESTART=PASO30

Pg: 14

11/11/2014

Sentencia JOB V

Control de salida

NOTIFY=nombre_usuario

El sistema enva un mensaje al usuario indicado cuado


termina el JOB

MSGCLASS=clase_salida (A-Z, 0-9)

Clase a la que se enviaran los mensajes y sentencias de


control

MSGLEVEL=([sentencias][,mensajes])

Sentencias

Mensajes

0 slo se imprime la sentencia JOB


1 se imprimen las sentencias de entrada y la expansin de
procedimientos catalogados
3 slo se imprimen las sentencias de entrada
0 no se imprimen los mensajes de asignacin/desaginacin
1 se imprimen los mensajes de asignacin/desaginacin

//JOBNAME JOB NOTIFY=user,MSGCLASS=H,MSGLEVEL=(1,1)


Pg: 15

11/11/2014

Sentencia JOB VI
A
H
//JOBNAME JOB CLASS=A,NOTIFY=user,MSGCLASS=H

Iniciador

SPOOL

Clases =
X,A

Colas de
Salida

Hold
Impresora

SDSF

Pg: 16

Clases =
A,X

11/11/2014

Sentencia EXEC I

Nombre:

PGM:

PROC:

ACCT: Informacin contable

PARM: pasa informacin al programa

Se le aplican las restricciones mencionadas


anteriormente
especifica el nombre del programa a ejecutar
Especifica el nombre del procedimiento a ejecutar
Igual a ficha JOB, aunque aqu es de palabra clave

//PASO30 EXEC PGM=ALFA,PARM=LOAD,UNLOAD


Pg: 17

11/11/2014

Sentencia EXEC II

Los siguientes parmetros tienen el mismo


significado que en la ficha JOB:
ADDRSPC
REGION
TIME
PERFORM
DPRTY (PRTY)

Pg: 18

11/11/2014

Sentencia EXEC III


//NOMBRE EXEC PGM=PROGRAM1

Fichero Particionado,
Librera o
Biblioteca

PROGRAM1

//NOMBRE EXEC PROC=PROC1


Procedimientos

//NOMBRE EXEC PROC1


PROC1
//paso1 exec
//file1 dd
//file2 dd
Pg: 19

11/11/2014

Cdigos de condicin
Especifican que el JOB se interrumpa si se
cumple la condicin
COND=((n,op,paso)...[,EVEN][,ONLY])

N nmero con el que se comparar el cdigo


retorno
Op operacin a realizar (GT, GE, LT, LE, EQ, NE)
Paso: nombre del paso cuyo cdigo de retorno se
quiere investigar, si no se codifica se investigan
todos los pasos anteriores.
EVEN: incluso si algn paso anterior termin mal
ONLY: slo si algn paso anterior termin mal
A partir de MVS/ESA v4 se puede utilizar if-endif para controlar los cdigos de condicin

Pg: 20

11/11/2014

Sentencia DD
La sentencia DD (Data Definition)
identifica a cada uno de los ficheros que
intervienen en el paso
Su nombre, al que se le aplican las
restricciones mencionadas anteriormente,
debe coincidir con el asignado en el
programa
Se utiliza para describir los atributos del
fichero (nombre, dispositivo, volumen,
bloqueo, etc.)

Pg: 21

11/11/2014

Tipos de Ficheros

Pg: 22

In-stream
Secuencial
Particionado Secuencial (PS)
Indexado
Relativo
Temporales
VSAM
Impresora

11/11/2014

Ficheros in-stream
Se incluyen junto al JCL
No pueden exceder de 80 columnas
Se indica su comienzo por un *
Se indica su finalizacin por /* (cols. 1 y 2)
Normalmente se utiliza SYSIN como nombre
//SYSIN DD *
Ejemplo:

Registro 1
.
.
Registro n
/*

Pg: 23

11/11/2014

Parmetros Comunes

Pg: 24

Comunes a todos los ficheros, excepto in-stream o


de impresora
DSN o DSNAME identifica al fichero que estamos
tratando
UNIT identifica el dispositivo (disco, cinta, etc.)
VOL o VOLUME identifica el volumen del que
estamos hablando
DISP disposicin del fichero
SPACE espacio a asignar (slo ficheros en disco)
DCB (Data Control Block) (Bloque de Control de
Datos)

11/11/2014

DSN DSNAME
De 1 a 5 bloques de un mximo de 8
caracteres separados por puntos
Normalmente el primer nivel debe ser un
nombre autorizado
A cada uno de los bloques se les aplica las
restricciones de nombre
Los ficheros temporales comienzan por &&

//FICHERO1 DD DSN=TESTAPP.MOVTO.CONTABLE
//FICHERO2 DD DSN=usuario.STOCK.ALMACEN
//FICHERO3 DD DSN=&&TEMP
Pg: 25

11/11/2014

DISP (disposition)
Estado del fichero (inicial, fin-ok, fin-ko)
Inicial:

Fin-ok:

NEW: nuevo (se crear en este paso)


OLD: viejo (ya existe) (uso exclusivo)
SHR: viejo (ya existe) (uso compartido)
MOD: viejo (ya existe) (se aadirn datos)

(si termina bien)

CATLG: Catalogado
KEEP: Guardado sin catalogar
PASS: Catalogado para el JOB
DELETE: Borrado
UNCATLG: Descatalogado

Pg: 26

Fin-ko:

(si termina mal)

CATLG: Catalogado
KEEP: Guardado sin catalogar
DELETE: Borrado
UNCATLG: Descatalogado

11/11/2014

Ubicacin de procedimientos
//nombre JCLLIB ORDER=(P390A.PROCLIB, )
//NOMBRE EXEC PROC=PROC1

//NOMBRE EXEC PROC1

P390A.PROCLIB

PROC1
//paso1 exec
//file1 dd
//file2 dd

SYS1.PROCLIB

//NOMBRE EXEC PROC=PROC1

//NOMBRE EXEC PROC1

Pg: 27

PROC1
//paso1 exec
//file1 dd
//file2 dd
11/11/2014

P390A.LOAD

Ubicacin de programas
PROGRAM1

//JOBLIB DD DSN=P390A.LOAD,DISP=SHR
//NOMBRE1 EXEC PGM=PROGRAMA1
//NOMBRE2 EXEC PGM=PROGRAMA2
//NOMBRE1 EXEC PGM=PROGRAMA1
//NOMBRE2 EXEC PGM=PROGRAMA2

//NOMBRE1
//STEPLIB
//NOMBRE1
//STEPLIB

EXEC PGM=PROGRAMA1
DD DSN=P390A.LOAD,DISP=SHR
EXEC PGM=PROGRAMA1
DD DSN=P390B.LOAD,DISP=SHR

SYS1.LINKLIB

PROGRAM1
P390A.LOAD

PROGRAM1

P390B.LOAD

PROGRAM1
Pg: 28

11/11/2014

Unit

Especifica la unidad a utilizar para el fichero


UNIT=(nnn,unit_count, DEFER) (no usar)
UNIT=(tipo,P,DEFER)
UNIT=(grupo,,DEFER)

//FICHERO1 DD DSN=F1,DISP=OLD,UNIT=3480
//FICHERO2 DD DSN=F2,DISP=(,KEEP),UNIT=3480
//FICHERO3 DD DSN=F3,DISP=(,KEEP),UNIT=SYSDA

Pg: 29

11/11/2014

Vol o Volume
Especifica el volumen donde se encuentra
el fichero
Slo para ficheros nuevos o no catalogados
VOL=SER=(nnnnnn ... [,nnnnnn])
VOL=REF=fichero
VOL=REF=*.pason

//FICHERO1 DD DSN=F1,DISP=OLD,UNIT=TAPE,
//
VOL=SER=003276

Pg: 30

11/11/2014

DCB (Data Control Block)

Subparametros:
RECFM: (Formato de registro)

F (Longitud Fija)
V (Longitud Variable)
U (Indefinido)
FB (Fijo Bloqueado)
VB (Variable Bloqueado)

LRECL: (Longitud del registro)


DSORG: (Data Set Organization)

PS (Secuencial)
IS (Secuencial Indexado)
PO (Particionado)

KEYLEN: (Longitud de la clave)


BLKSIZE: (Longitud del bloque)
A partir de MVS/ESA se pueden codificar como parmetros fuera de la DCB

Pg: 31

11/11/2014

Cilindro y pista
Pista (trk)

Pg: 32

Cilindro (cyl)

11/11/2014

Space

SPACE=(tipo,(p,s,d),RLSE,CONTIG)
Tipo:
TRK
CYL
Longitud de bloque

Pg: 33

P Cantidad primaria
S Cantidad secundaria
D Bloques de directorio (256) (slo PO)
RLSE (liberar espacio sobrante)
CONTIG (contiguo)
11/11/2014

Data definition (DD)


//NOMBRE EXEC PGM=PROGRAM1

PROGRAM1
OPEN entrada1
OPEN salida1
OPEN entrada2

//entrada1 DD DSN=fichero.entrada,DISP=SHR
c
DISCO2

DISCO3

Catlogo

Fichero.entrada
VTOC

A
//salida1 DD SYSOUT=A
//entrada2 DD *
dato1
dato2

/*
Pg: 34

SPOOL
Colas de
Salida

Impresora
Clases =
A,X

11/11/2014

Ejercicios I
1. Realizar y ejecutar un JOB que cree y
catalogue un fichero llamado
userid.primero.texto de longitud 80
2. Realizar y ejecutar un JOB que rellene el
fichero anterior con registros numerados
del 01 al 50 en sus dos primeras
posiciones
3. Descatalogar el fichero anterior
4. Borrar el fichero anterior
Pg: 35

11/11/2014

Programas de Utilidad I
IEFBR14 crear, catalogar y borrar ficheros
Los ficheros se crean, catalogan o borran
dependiendo de lo que indiquemos en el
parmetro DISP de la sentencia DD
Se pueden colocar cualquier nmero de
DDs y con cualquier nombre

//PASO01 EXEC PGM=IEFBR14


//DD1
DD DSN=F1,DISP=(OLD,DELETE)
//DD2
DD DSN=F2,DISP=(,CATLG,DELETE),
//
UNIT=DISK,VOL=SER=DSK0001,
//
DCB(RECFM=FB,LRECL=80,BLKSIZE=2400)
Pg: 36

11/11/2014

Procedimientos catalogados I

In-stream
Entre las sentencias PROC y PEND
No pueden estar anidados

Del sistema
Incluidos en SYS1.PROCLIB u otra librera de
procedimientos

Pueden incluir variables simblicas


En la llamada se puede modificar el valor de
las variables simblicas, de algn parmetro
o incluirse alguna DD inexistente

Pg: 37

11/11/2014

Procedimientos catalogados II
//TESTPROC PROC A=IMB406,B=ABLE,C=3330,D=WXYZ1,
// E=OLD,F=TRK,G='10,10,1'
//STEP EXEC PGM=&A
//DD1 DD DSNAME=&B,UNIT=&C,VOLUME=SER=&D,DISP=&E,
// SPACE=(&F,(&G))
// PEND
//LLAMADA EXEC PROC=TESTPROC,A=IEFBR14,
//
B=BAKER,E=(NEW,KEEP)
//STEP EXEC PGM=IEFBR14
//DD1 DD DSNAME=BAKER,UNIT=3330,VOLUME=SER=WXYZ1,
//
DISP=(NEW,KEEP),SPACE=(TRK,(10,10,1))
Pg: 38

11/11/2014

Backward References
//STEP EXEC PGM=IEFBR14
//DD1 DD DSNAME=FILE01,UNIT=3390,
//
DISP=(NEW,CATLG,DELETE),
//
SPACE=(TRK,(10,10,1)),
//
DCB=(RECFM=FB,LRECL=80,BLKSIZE=4000)
//*
//STEP2 EXEC PGM=IEBGENER
//SYSUT1 DSNAME=*.STEP.DD1,DISP=SHR
//SYSUT2 DSNAME=FILE02,REFDD=*.STEP.DD1
//
//STEP3 EXEC PGM=IEBGENER
//SYSUT1 DSNAME=*.STEP.DD1,DISP=SHR
//SYSUT2 DSNAME=FILE03,UNIT=3390,
//
DISP=(NEW,CATLG,DELETE),
//
SPACE=(TRK,(10,10,1)),
//
DCB=*.STEP.DD1
//
Pg: 39

11/11/2014

Sustitucin en procedimientos
//TESTPROC PROC C=A
//STEP EXEC PGM=IEBGENER
//SYSUT1 DD DSN=FILE01,DISP=SHR
//SYSUT2 DD DSN=FILE02,DISP=(,CATLG,DELETE),
//
UNIT=SYSDA,SPACE=(TRK,(1,1))
//SYSPRINT DD SYSOUT=&C
//SYSIN DD DUMMY
// PEND
//LLAMADA EXEC PROC=TESTPROC,C=HP)
//STEP.SYSIN DD *
GENERATE
RECORD FIELD
//STEP.SYSUT2 DD SPACE=(CYL,(10,20),RLSE)
Pg: 40

11/11/2014

Concatenacin de ficheros
Unin de varios ficheros formando un
nico fichero lgico
Los ficheros deben ser secuenciales y del
mismo tipo (RECFM)
La longitud de registro de todos los
ficheros debe ser igual
Si hay distintas longitudes de bloque
(BLKSIZE) el ms grande debe ir primero
Slo para ficheros de entrada

//FICHERO1 DD DSN=F1,DISP=OLD
//
DD DSN=F2,DISP=OLD
Pg: 41

11/11/2014

Ficheros sin etiqueta


Normalmente los ficheros llevan asociada
una etiqueta, donde se almacenan sus
caractersticas
En algunos casos no es recomendable el
uso de etiquetas
Los ficheros sin etiquetas debe estar en
cinta o cartucho
Para acceder a un fichero sin etiquetas
codificaremos LABEL=(n,NL)

N es el nmero del fichero en la cinta


NL indica que es un fichero sin etiquetas

Pg: 42

Ser nuestra responsabilidad indicar las


caractersticas del fichero
11/11/2014

Ficheros Temporales
Slo estn vivos durante la ejecucin del
JOB
Su nombre comienza por && y no pueden
exceder los 8 caracteres
Normalmente su disposition ser DELETE
o PASS
Recomendables para las pruebas
No puede investigarse su contenido una
vez ha terminado el JOB

Pg: 43

11/11/2014

Ficheros ficticios

Se utilizan cuando:

No nos interesa un fichero salida de un programa,


pero no queremos modificar el programa
Nos interesa que el programa considere que el
fichero de entrada est vaco

Se indican de dos formas:

Con el parmetro posicional DUMMY


Con DSN=NULLFILE
//FICHERO1 DD DUMMY,BLKSIZE=32000
//FICHERO2 DD DSN=NULLFILE,DISP=OLD

Pg: 44

11/11/2014

Grupos de Generacin I
Podemos considerar los grupos de
generacin como un fichero con distintas
versiones
Todas las versiones deben estar catalogadas
El formato (tipo y longitud) de todos los
ficheros debe ser el mismo
Se usan para garantizar la seguridad de los
datos
Tienen un nombre especfico

Pg: 45

11/11/2014

Grupos de Generacin II

Nombres:
Absoluto:
Nombre fichero (mx. 35 caracteres)
Gnnnn N de generacin (asignado por el sistema)
Vnn N de versin (asignado por el sistema)

Relativo:
Nombre fichero (mx. 35 caracteres)
(0), (+1), (-2), etc

Antes de utilizar un grupo de generacin es


necesario definirlo (IDCAMS, IEHPROGM)
Los nombres relativos se consolidan a final
de JOB

Pg: 46

11/11/2014

Ficheros de impresin

Se identifican por el parmetro posicional


SYSOUT=(n,form)
N: es la clase de salida o *, en cuyo caso se
tomar la clase especificada en el
MSGCLASS de la ficha JOB
Form: es cdigo del formulario a utilizar

Parmetros adicionales

Pg: 47

COPIES: N de copias
DEST: Identificacin de la impresora
FCB: Identificacin programa impresora
UCS: Juego de caracteres

11/11/2014

Campos decimales y empaquetados


Representacin Interna:
1 byte (carcter) = 8 bits
A =

6 =

1
1

1
6

F 1 F 2 F 8 F 9 F 7
Al realizar una operacin
Pg: 48

11/11/2014

Campos decimales y empaquetados


Representacin Interna:
1 byte (carcter) = 8 bits
A =

6 =

1
1

1
6

F 1 F 2 F 8 F 9 C 7
Si el campo es negativo
Pg: 49

11/11/2014

Campos decimales y empaquetados


Representacin Interna:
1 byte (carcter) = 8 bits
A =

6 =

1
1

1
6

F 1 F 2 F 8 F 9 D 7
Formato empaquetado
Pg: 50

11/11/2014

Campos decimales y empaquetados


-

Decimal

Empaquetado

F 1 F 2 F 8 F 9 D 7

1 2 8 9 7 D

5 octetos

3 octetos

Decimal

F 1 F 2 F 8 F 9 F 7 D 6
6 octetos
Pg: 51

Empaquetado

0 1 2 8 9 7 6 D
4 octetos

11/11/2014

Programas de Utilidad II
IEBGENER Copia ficheros
manipulndolos
Sentencias de control:

Entrada: SYSUT1
Salida: SYSUT2
Mensajes: SYSPRINT
Control: SYSIN

Puede prefijarse con X


PZ Empaquetado a decimal
ZP Decimal a empaquetado

EXITS, LABELS, MEMBERS


RECORD

Debe ir la primera

Pg: 52

[IDENT=(long.,'name,pos.)]
[RECORD [FIELD=(long.in,pos.in|literal,conv.,pos. out)]]
... ]
GENERATE [MAXLITS=mx.] , [MAXFLDS=mx]
11/11/2014

Ejercicios II
1. El fichero P390.empl.texto tiene la siguiente
estructura:

Pos. 1 a 5 Nmero
Pos. 6 a 30 Nombre
Pos. 31 a 80 Apellidos
Pos. 81 a 87 Salario (decimal con zonas)

2. Queremos obtener el fichero P390?.empl.textomod:

Pg: 53

Pos. 1 a 5 Nmero
Pos 6 a 8 Siglas Sr. en todos los registros
Pos. 9 a 33 Nombre
Pos. 34 a 83 Apellidos
Pos. 84 a 87 Salario (empaquetado)
11/11/2014

Programas de Utilidad III


IEHPROGM Creacin de ficheros
Sentencias de control:

Entrada: cualquier nombre apuntando al disco


donde se encuentren los ficheros
Mensajes: SYSPRINT
Control: SYSIN

SCRATCH DSNAME=nombre,VOL=device
UNCATLG DSNAME=nombre
CATALOG DSNAME=nombre,VOL=device
RENAME
DSNAME=nombre,VOL=device,NEWNAME=nombre
BLDG INDEX=nombre,ENTRIES=n,EMPTY

Pg: 54

11/11/2014

Programas de Utilidad IV

Pg: 55

IEBCOMPR Comprar ficheros


IEBCOPY Copiar ficheros
IEBDG Generar datos de prueba
IEBEDIT Editar JCL
IEBIMAGE Mantiene cartulas impresora
IEBISAM manejo de ficheros ISAM
IEBPTPCH Imprimir ficheros
IEBUPDATE Modificar ficheros
IEHINIT Inicializar cintas
IEHLIST Listar informacin s/ ficheros
particionados
11/11/2014

SORT

Clasificacin de ficheros
Entrada: SORTIN
Salida: SORTOUT
Control: SYSIN

ALTSEQ CODE=(oorr, ... )


INCLUDE COND=(condicin)
INREC cambia formato antes proceso
OMMIT COND=(condicin)
OUTFIL FNAMES=nombre,include
OUTREC cambia formato despus proceso
SORT FIELDS(p,l,f,[A|D], )
SUM FIELDS(p,l,f)

Trabajo: SORTWK01 a SORTWK))


Slo especificar UNIT y SPACE

Pg: 56

11/11/2014

SORT

Clasificacin de ficheros
Entrada: SORTIN
Salida: SORTOUT
Control: SYSIN

Oo valor hexadecimal origen


Rr valor hexadecimal a considerar

ALTSEQ CODE=(oorr, ... )


INCLUDE COND=(condicin)
INREC cambia formato antes proceso
OMMIT COND=(condicin)
OUTFIL FNAMES=nombre,include
OUTREC cambia formato despus proceso
SORT FIELDS(p,l,f,[A|D])
SUM FIELDS(p,l,f)

Trabajo: SORTWK01 a SORTWK))


Slo especificar UNIT y SPACE

Pg: 57

11/11/2014

SORT

Clasificacin de ficheros
Entrada: SORTIN
Salida: SORTOUT
Control: SYSIN

P1,l1,f1,[EQ|NE |GT |GE |LT |LE],[cliteral|p2,l2,f2],


[AND|OR] ...
F1 Y F2 [CH|ZD|PD|BI]

ALTSEQ CODE=(oorr, ... )


INCLUDE COND=(condicin)
INREC cambia formato antes proceso
OMIT COND=(condicin)
OUTFIL FNAMES=nombre,include
OUTREC cambia formato despus proceso
SORT FIELDS(p,l,f,[A|D] )
A = Ascendente
D = Descendente
SUM FIELDS(p,l,f)

Trabajo: SORTWK01 a SORTWK))


Slo especificar UNIT y SPACE

Pg: 58

11/11/2014

SORT (OUTFIL)

OUTFIL permite definir los dnames de los


ficheros de salida
A cada ddname se le pueden asignar una
condicin distinta
//PASO1
EXEC PGM=SORT
//SORTIN
DD DSN=P39OX.ENTRADA,DISP=SHR
//AES
DD DSN=P390X.AES,DISP=(,CATLG,DELETE),
//BES
DD DSN=P390X.BES,DISP=(,CATLG,DELETE),
//RESTO
DD DSN=P390X.RESTO,DISP=(,CATLG,DELETE),
//SYSIN
DD *
OUTFIL INCLUDE=(1,1,CH,EQ,CA'),FNAMES=AES
OUTFIL INCLUDE=(1,1,CH,EQ,CB'),FNAMES=BES
OUTFIL SAVE,FNAMES=RESTO
SORT FIELDS=(1,1,CH,A)
/*

Pg: 59

11/11/2014

Ejercicios III
1. El fichero user.PEDIDOS.ALMACEN tiene
la siguiente estructura:

Pos. 1 a 1 Cdigo (C=Cabecera, L=Lnea)


Pos. 2 a 6 Nmero de pedido
Pos. 7 a 11 Nmero de cliente
Para las cabeceras:

Pos. 12 a 41 Nombre del cliente

Pos. 12 a 21 Cdigo de Artculo


Pos. 22 a 26 Cantidad Pedida (empaquetado)

Para las lneas:

Pg: 60

11/11/2014

Ejercicios III

Se quiere:
1. Obtener el fichero
user.PEDIDOS.LINEAS que slo
tendr las lneas de pedido, ordenadas
por: Artculo y Cliente (nmero).
2. Obtener el fichero
user.ARTICULO.PEDIDOS que debe
tener una lnea por artculo con el total
de las cantidades pedidas

Pg: 61

11/11/2014

Ejercicios IV

El fichero P390.EJERIV.DATA contiene los


siguientes datos

Nmero empleado long. 5 caracteres


Nombre long. 15 caracteres
Domicilio long. 20 caracteres
Salario long. 7 caracteres numricos (sin empaquetar)

Obtener el fichero P390?.EJERIV.DATA con la

siguiente informacin:

Pg: 62

Nombre long. 15 caracteres


Salario long. 7 caracteres numricos (empaquetados) ocupa 4
Domicilio long. 20 caracteres
Nmero empleado long. 5 caracteres

Si el paso de transformacin no termina con


cdigo cero borrar el fichero de salida
11/11/2014

VSAM (Virtual Storage Acces Metod)

Tipos de organizacin:

KSDS (ms utilizados)

Pg: 63

KSDS (Key-sequenced Data Set)


ESDS (Entry-sequenced Data Set)
RRDS (Relative-record DataSet)
VRDS (Variable Relative-record DataSet)
Contienen un rea de datos y otra de indices
Cada rea es un fichero independiente
Cluster: nombre que agrupa las dos reas
Acceso en secuencia o por clave
Borrados fsicos
11/11/2014

Organizacin VSAM
Catlogo

Programa
Leer

Mtodo de
acceso
VSAM

RL RL
Intervalo de
control

KSDS
ESDS
RRDS

Registro lgico

Pg: 64

11/11/2014

VSAM KSDS
32

43

67

75

EL

ndice

23

28

30

32

33

35

40

43

47

52

56

67

68

70

75

Intervalos de
Control
(Datos)

ndice
Nombre Apellidos Nmero empleado

Categora

Campo clave
Pg: 65

11/11/2014

Catlogos
Catlogo
Maestro

Catlogo
Usuario

Catlogo
Usuario

Fichero7

Fichero1

Pg: 66

Fichero2
Fichero3

Catlogo
Usuario

Catlogo
Usuario

Fichero8

Fichero9

Fichero4
Fichero5

Fichero1

11/11/2014

Alias
CATUSER1
Catlogo Maestro

Pagos.a11
Pagos.B22
Pagos.C33

Alias Pagos
CATUSER1
Alias BE18
Alias BE05
Alias BE25
CURSOS

Pg: 67

CURSOS

DISCOS
Pagos.B22
Pagos.a11
BE18.user1
BE05.jcl

BE18.user1
BE18.user2
BE05.jcl
BE05.vsam

11/11/2014

Comandos IDCAMS I

Pg: 68

ALTER: Modifica las caractersticas de un catlogo definido


previamente
BLDINDEX: Construye ndices para ficheros existentes
CNVTCAT: Convierte una VTOC en un catlogo VSAM
DEFINE ALIAS: Define un nombre alternativo para uno
fichero no VSAM
DEFINE ALTERNATEINDEX: Define un ndice alternativo
DEFINE CLUSTER: Define un cluster (data + index)
DEFINE GENERATIONDATAGROUP: Define un grupo
de generacin
DEFINE NONVSAM: Define un fichero no VSAM
DEFINE PAGESPACE: Define un fichero PAGE SPACE
(paginacin)
11/11/2014

Comandos IDCAMS II

Pg: 69

DEFINE PATH: Define un enlace entre un cluster y un


ndice alternativo
DEFINE SPACE: Define un espacio VSAM
DEFINE USERCATALOG|MASTERCATALOG: Define un
catlogo
DELETE: borra catlogos y ficheros VSAM y no VSAM
EXAMINE: Informa de la consistencia de ndices y datos
en un KSDS
EXPORT: Exporta un cluster o ndice alternativo
EXPORT DISCONNECT: Desconecta un catlogo de su
catlogo maestro
EXPORTRA: Recupera entradas del catlogo, si se
defini como recuperable
IMPORT: Importaun cluster o ndice alternativo
11/11/2014

Comandos IDCAMS III

Pg: 70

IMPORT CONNECT Conecta un catlogo de usuario


IMPORTRA: Restaura entradas del catlogo, si se
defini como recuperable
LISTCAT: Lista entradas del catlogo
LISTCRA: Lista o compara entradas del rea de
recuperacin del catlogo, si se defini como recuperable
PRINT: Lista catlogos y ficheros VSAM y no VSAM
REPRO: Copia ficheros VSAM y no VSAM, descarga y
carga catlogos
RESETCAT: Compara entradas del catlogo con
entradas de recuperacin, si se defini como recuperable
VERIFY Verifica el cierre correcto del fichero
11/11/2014

Define Cluster
DEFINE CLUSTER(parmetros)
[DATA(parmetros)]
[INDEX(parmetros)]
[CATALOG(parmetros)]

Parmetros obligatorios:

(NAME(nombre)
CYLINDERS|RECORDS|TRACKS(p,s)
VOLUMES(vol1, ...) )

Parmetros opcionales:
CONTROLINERVALSIZE(n) ERASE|NOERASE FREESPACE(CI% [CA%]) KEYS(length offset) RECORDSIZE(average maximum|default) SHAREOPTIONS(crossregion[ crosssystem]|1 3)
Pg: 71

11/11/2014

Define GenerationDataGroup
DEFINE
GENERATIONDATAGROUP(parmetros)
Parmetros obligatorios:
(NAME(nombre)
LIMIT(n) 1:255

Parmetros opcionales:

EMPTY|NOEMPTY OWNER(ownerid) SCRATCH|NOSCRATCH

Pg: 72

11/11/2014

Define AlternateIndex
DEFINE ALTERNATEINDEX(parmetros)
Parmetros obligatorios:
Igual que para CLUSTER

Parmetros opcionales:

Igual que en CLUSTER ms


RELATE(cluster-name)
UNIQUEKEY|NONUNIQUEKEY

Pg: 73

11/11/2014

Define Path
DEFINE PATH(parmetros)
Parmetros obligatorios:

(NAME(nombre)
PATHENTRY(entryname) )

Parmetros opcionales:

OWNER(ownerid) UPDATE|NOUPDATE

Pg: 74

11/11/2014

Delete
DELETE(parmetros)
Parmetros obligatorios:
(NAME(nombre) )

Parmetros opcionales:
ALIAS|ALTERNATEINDEX|CLUSTER|
GENERATIONDATAGROUP|
NONVSAM|PAGESPACE|PATH|SPACE|USERCATALOG
ERASE|NOERASE
FORCE|NOFORCE
PURGE|NOPURGE
SCRATCH|NOSCRATCH

Pg: 75

11/11/2014

Listcat
LISTCAT(parmetros)
Parmetros opcionales:
[ALIAS][ALTERNATEINDEX][CLUSTER][DATA]
[GENERATIONDATAGROUP][INDEX][NONVSAM]
[PAGESPACE][PATH][SPACE][USERCATALOG]
CREATION(days)
ENTRIES([entryname[ entry name]...][LEVEL(level)])
NAME|HISTORY|VOLUME|ALLOCATION|ALL
NOTUSABLE

Pg: 76

11/11/2014

Print
PRINT(parmetros)
Parmetros obligatorios:

INFILE(ddname) | INDATASET(entryname)

Parmetros opcionales:
CHARACTER|DUMP|HEX
FROMKEY(key) | FROMADDRESS(address) |
FROMNUMBER(number) | SKIP(number)
TOKEY(key) | TOADDRESS(address) |
TONUMBER(number) | COUNT(number)

Pg: 77

11/11/2014

Repro
REPRO parmetros
Parmetros obligatorios:

INFILE(ddname) | INDATASET(entryname)
OUTFILE(ddname) | OUTDATASET(entryname)

Parmetros opcionales:
CHARACTER|DUMP|HEX
FROMKEY(key) | FROMADDRESS(address) |
FROMNUMBER(number) | SKIP(number)
TOKEY(key) | TOADDRESS(address) |
TONUMBER(number) | COUNT(number)
REPLACE|NOREPLACE
Pg: 78

11/11/2014

Verify
VERIFY(parmetros)
Parmetros obligatorios:

FILE(ddname) | DATASET(entryname)

Pg: 79

11/11/2014

Ejercicios V
1. Definir un cluster KSDS (data+ index) con una
clave de 15 pos., empezando en la 1 pos. Del
registro
2. Definir un grupo de generacin (GDG), que
permita 5 entradas, al crear la sexta se debe
descatalogar (no borrar) la primera
3. Definir un ndice alternativo, sobre el fichero del
ejercicio 1, con longitud de tres y
desplazamiento 16
4. Definir un path para permitir el acceso sobre el
fichero del ejercicio 1, a travs del ndice del
ejercico 3.
5. Borrar los ficheros utilizados en este ejemplo
Pg: 80

11/11/2014