Mainframe Application Design

Anuncio
z/OS JCL y Utilerías
JCL
Job Control Language
Sentencias de control para la asignación de recursos y la ejecución
de programas batch
INPUT JOB STREAM
NULL INSTR.
JOB STEPS
DD INSTRS.
EXEC INSTR.
DD INSTRS.
EXEC INSTR.
//JOB
DD INSTRS.
EXEC INSTR.
DD INSTRS.
EXEC INSTR.
JOBS
//JOB
2
JES2
• JES2 (Job Entry Subsystem):
– Lee las sentencias (tarjetas) de JCL
– Aloja los jobs en la cola de entrada de ejecución y los
ordena por prioridad
– Asigna un iniciador y crea el ambiente necesario para
la ejecución del Job
– Ejecuta programas y libera recursos al terminar
3
Convenciones En Sintaxis
• Codificación
–
–
–
–
–
–
Tal como se describe en la sintaxis
Sentencias con parámetros obligatorios y opcionales
Comas para separar parámetros
Signo igual (=) representa equivalencia
Utilización de parámetros simbólicos
Set de caracteres permitidos
4
Estructura de Sentencias
• Registros de 80 bytes, similar a una tarjeta perforada
• Compuesta por 5 campos:
– Identificador
• Determina una sentencia JCL
• Siempre en las columnas 1 y 2
• // Todas, /* Fin de datos, //* Comentarios
– Nombre
•
•
•
•
Identifica la sentencia y es referencia en el stream
Debe iniciar en la columna 3
Longitud máxima de 8 caracteres
Mínimo un espacio entre el nombre y los siguientes parámetros
5
Sentencias...
– Operación
• Especifica la sentencia o comando
• Sigue al nombre, antes y después un espacio
– Parámetros
•
•
•
•
•
Opciones de proceso separadas por comas
Sigue al campo operación
Al menos un espacio antes y después
Parámetros posicionales y subparámetros
Comas para separar parámetros
– Comentarios
• Inicia después del último carácter de parámetros
• Información de ayuda o referencia
6
JOB - JOBSTEP
//jname1 JOB … … … …
//… … … … … … …
//step1 EXEC … … …
//… … … DD … … …
//… … … DD … … …
//… … … DD … … …
//step2 EXEC … … …
//… … … DD … … …
//… … … DD … … …
//jname2 JOB … … …
//… … … … … … …
//step3 EXEC … … …
//… … … DD … … …
//step4 EXEC … … …
//… … … DD … … …
//
Sentencia Job
Sentencia Exec
Sentencias DD
JOB
Sentencia Exec
Sentencias DD
Job
Stream
Sentencia Job
Sentencia Exec
Sentencias DD
Sentencia Exec
Sentencias DD
Sentencia Null
JOB
7
Sentencias Principales
• JOB
• EXEC
• DD
• PROC
• PEND
8
Sentencia JOB
•
•
•
•
Marca el inicio de un JOB
Indica al sistema la forma de proceso
Necesaria para cada JCL
Puede iniciar en cualquier columna después de la 4 y
antes de la 16
• Jobname debe ser único, de máximo 8 caracteres e
iniciar en la columna 3
• Parámetros Posicionales
– Número de cuenta
– Nombre
9
Sentencia JOB...
• Subparámetros
– REGION=valor. Especifica la cantidad de espacio de memoria que el
Job necesita
– RESTART=
RESTART=stepname
stepname o proc.stepname
proc.stepname.. Indica al JOB que comience
desde un paso en específico
– TIME=
TIME=([minutes]
([minutes] [,seconds
[,seconds]).
]). Tiempo máximo de residencia en
memoria del JOB dentro del procesador. Minutes= 1 a 1439,
Seconds=
Seconds
= 1 a 59
– TYPRUN=[HOLD] [SCAN]. Hold envía el job a la cola de Input y
queda en pausa (congelado). SCAN solo efectúa una revisión de
sintaxis
• Comentarios siguen a los parámetros, al menos un
espacio antes y después
10
Sentencia JOB
• Ejemplos:
//ALPHA
JOB 843,LINLEE,CLASS=F,MSGCLASS=A,MSGLEVEL=(1,1)
//MYJOB
JOB,‟JMBUSKIRK‟,TIME=(4,30),MSGCLASS=H,MSGLEVEL=(2,0)
//MART
JOB
//TRY
JOB „D83‟,123,USER=RAC1,PASSWORD=XYZ
11
Sentencia EXEC
• Identifica el programa o el proceso a ejecutar
• Marca el inicio de cada paso de JOB
• Sintaxis
//stepname EXEC PGM=XXXXXXXX
//stepname
//stepname
//
stepname EXEC PROC=XXXXXXXX
//stepname
//
stepname EXEC Nombre del proceso
• Stepname es opcional, obligatorio para referencias anteriores y
posteriores
• Debe contener uno de los siguientes parámetros
– PGM
– PROC
– Nombre del Proceso
12
Sentencia EXEC...
• Parámetros posicionales
– PGM=prg
PGM=prg--name
name.. Nombre del programa a ejecutar
– PROC=
PROC=proc
proc--name
name.. Nombre del procedimiento a ejecutar
– COND=(
COND=(stepname.code,operator
stepname.code,operator).
). Evalúa el código de retorno
enviado por el paso anterior y determina si continua el proceso
– PARM=
PARM=information
information.. Pasa valores al programa que se este ejecutando
– REGION=
REGION=value
value.. Especifica la cantidad de espacio que requiere el
proceso
– TIME
TIME[.
[.procstepname
procstepname]=
]=((minutes,seconds
minutes,seconds)1440
)1440.. Especifica el tiempo
máximo de residencia en memoria para el paso
13
Sentencia EXEC...
• Ejemplos
//STEP4
EXEC
PGM=DREC,PARM=„3010,N0‟
//
EXEC
PGM=ENTRY,TIME=(2,30)
//STEP01
EXEC
PGM=PBORRA,COND=(0,NE)
14
Sentencia DD
•
•
•
•
•
DD. Data Definition
Se pueden describir varios recursos: DATA SETS, SYSOUT, SYSLIB,
STEPLIB, JOBLIB, etc
etc…
…
Una sentencia DD por cada archivo
Sintaxis:
//ddname
//
ddname
DD positionalpositional-parameter,keyword
parameter,keyword--parameters…
• Máximo 3273 sentencias DD
• Cada ddname debe ser único en un paso de Job
• Una DD se omite cuando se concatenan archivos
15
Sentencia DD...
• Parámetros posicionales
– * . Recibe datos vía inin-stream
– DATA. Recibe datos vía inin-stream el cual contiene sentencias
JCL
– DUMMY. No especifica nombre de archivo
• Subparámetros
– DSN=
DSN=dataset
dataset.. Especifica el nombre largo del archivo
16
Sentencia DD...
• Subparámetros
– DCB=(RECFM=TipoDCB=(RECFM=Tipo-reg,LRECL
reg,LRECL=
=length
length,,
BLKSIZE=block,DSORG
BLKSIZE=
block,DSORG=
=org
org))
– RECFM. Tipo de registro: F – Fijo, FB – Fijo bloqueado,
V – Variable, VB – Variable bloqueado
– LRECL. Longitud total del registro en bytes
– BLKSIZE. Valor del bloqueaje en bytes
– DSORG. Tipo de organización del archivo: PS – Secuencial, PO –
Particionado
– DISP=(
DISP=(status,normal,abnormal
status,normal,abnormal))
– Status. Estado inicial, valores: OLD, NEW, SHR, MOD
– Normal. Acción al finalizar normalmente el proceso, valores:
DELETE, KEEP, PASS, CATLG, UNCATLG
– Abnormal
Abnormal.. Acción en caso de que el proceso termine de forma
incorrecta, valores: DELETE, KEEP, CATLG, UNCATLG
17
Sentencia DD...
• Subparámetros
– SPACE=(
SPACE=(uni
uni--med(
med(pri
pri--qty,sec
qty,sec--qty,dir
qty,dir)[,RLSE][,CONTIG],
)[,RLSE][,CONTIG],
[,ROUND]). Determina la cantidad de espacio para el archivo
– UniUni-med
med.. Unidad de medida: TRK – Tracks
Tracks,, CYL – Cilindros, BLK –
Blocks
– Pri
Pri--qty
qty.. Cantidad primaria, deberá estar disponible al momento de
la alojación
– Sec
Sec--qty
qty.. Cantidad secundaria. Se aloja dinamicamente conforme
va requiriendo el espacio y hasta 5 extents
– Dir. Bloques de directorio, para el caso de datasets particionados
– RLSE. Indica que al termino de ejecución, libera el espacio no
ocupado
– CONTIG. Utiliza un solo extent en espacio contiguo
– ROUND. Completa el requerimiento de memoria utilizada a
“frontera” de cilindro
18
Sentencia DD...
• Subparámetros
– UNIT=Unidad. Unidad lógica genérica donde reside el data set.
Valores: SYSDA, 3390, WRKDA y otros definidos por instalación
– VOLUME=SER. Especifíca el volúmen donde se va a quedar el
archivo
– LABEL=
LABEL=(data
(data--set
set--seq
seq--no, labellabel-type, password).
password). Especificación
de secuencia del dataset en el volúmen
volúmen,, tipo de etiqueta de cinta
o cartucho y password
– EXPDT=
EXPDT=yyddd
yyddd.. Especifica una fecha de expiracion del archivo
Formato: yy dos digitos para el año, ddd tres digitos para el día
(de 001 a 366).
Para fechas mayores a Enero 1 de 2000, debe utilizar cuatro
digitos para el año (yyyy
(yyyy))
19
Sentencia DD...
• Ejemplos:
// STEP2
//DDX
//
//DDY
EXEC
DD
//DD1
//
DD
DD
PGM=POINT
DSN=EST,DISP=MOD,VOL=SER=(42569,42570),
UNIT=3330
SYSOUT=*
DSNAME=AAG3,DISP=(,KEEP),
VOL=SER=13230,UNIT=3400--S
VOL=SER=13230,UNIT=3400
20
Tarjeta NULL
• Marca fin de un paso de JOB
• Codificada en las columnas 1 y 2 como //
• El sistema reconoce el fin de Job:
– Cuando el inin-stream no tiene mas datos
– Cuando encuentra // sin nada más
21
Concatenación de archivos
• Codificar varios DD bajo un solo DDNAME
• Se omiten las DDNAMES de todas las DD de los
archivos, a excepción de la primera
• Los archivos serán procesados en el orden en que se
escriban
• Si se pretenden concatenar archivos de diferente
bloqueaje debe observarse que el de mayor tamaño
aparezca en primer orden
22
Concatenación de archivos
• Ejemplos:
//INPUT
//
//
//
DD
DD
DD
DSNAME=FGLIB,DISP=(OLD,PASS)
DSNAME=GROUP,DISP=SHR
DSNAME=TPFILE,DISP=(OLD,KEEP),
UNIT=TAPE,VOL=SER=T1254
23
Ejemplo de JCL
//IBMUSER1 JOB (ODS,PD,PN,009),‘SORT ESTADISTICO’,
//
CLASS=V,
//
REGION=7M,
//
MSGCLASS=L,
//
NOTIFY=IBMUSER1,
//
MSGLEVEL=(1,1)
//******************************************************************************
//*
HACE UN SORT PARA SELECCIONAR LOS REGISTROS TIPO 09
//*
DEL ARCHIVO * 0080000 DE ESTADISTICO
//******************************************************************************
//JSORT01 EXEC PGM=SORT,REGION=0M
//*
//SYSPRINT
DD SYSOUT=*
//SYSOUT
DD SYSOUT=*
//SYSUDUMP
DD DUMMY
//SORTWK01
DD SPACE=(CYL,(10,50)),UNIT=WRKDA
//SORTWK02
DD SPACE=(CYL,(10,50)),UNIT=WRKDA
//SORTWK03
DD SPACE=(CYL,(10,50)),UNIT=WRKDA
//SORTWK04
DD SPACE=(CYL,(10,50)),UNIT=WRKDA
//SORTWK05
DD SPACE=(CYL,(10,50)),UNIT=WRKDA
//SORTWK06
DD SPACE=(CYL,(10,50)),UNIT=WRKDA
//SORTIN
DD DSN=USERID1.TMP.COPY,
//
DISP=SHR
//SORTOUT
DD DSN=USERID1.TMP.COPY.SORT,
//
DISP=(NEW,CATLG,DELETE),
//
SPACE=(CYL,(100,50),RLSE),
//
UNIT=TMPDA,
//
DCB=*SORTIN
// SYSIN
DD *
SORT FIELDS=(14,2,BI,A)
END
/*
24
Ejercicio 1 de JCL
• Con el usuario y password asignado, entre al mainframe
de acuerdo al procedimiento anteriormente descrito
• Elabore el JCL que ejecute el programa PROG01 cuyo
módulo carga se encuentra en su librería
DSRNXX.PO.LOAD
• Encontrará un esqueleto de JCL a completar en su
librería DSRNXX.PO.JCL con nombre de miembro
JEJER01
• Siga las indicaciones de su instructor
25
Procedimientos En JCL
• Es ejecutado mediante:
//PASO
EXEC
PROC=procedure name
//PASO
EXEC
Procedure Name
• Y cuando es llamado por EXEC el procedimiento. Es
sustituido en el jobstream y las sentencias son
mezcladas con las del JCL
• Hasta este momento JES2 revisa la sintaxis
26
Procedimientos En JCL
• Inician con la sentencia PROC y terminan con PEND
 Los procedimientos pueden contener: SET, EXEC, DD,
IF/THEN/ELSE/ENDIF, INCLUDE, CNTL, ENDCNTL y
comentarios
 No pueden contener:
– Sentencias JOB
27
Procedimientos En JCL

No pueden contener:
– Sentencias delimitador /*
– Sentencias Null //
– Sentencias no JCL



Orden de búsqueda: librería PROCLIB y STEPLIB
Utilización de parámetros simbólicos
Substitución de parámetros al tiempo de ejecución
28
Procs Catalogados
• Un procedimiento catalogado significa que este se
encuentra en una librería PROCLIB
• Pueden ser:
– SYS1.PROCLIB
– Librerías de sistema definidas por instalación
– Librerías de usuario
• Se pueden modificar los procedimientos mediante:
– Substitución, adición o nulificación de parámetros
– Por medio de parámetros simbólicos
• Se modifican Procs In-stream y catalogados
29
Modificación de
Procedimientos
(Parámetros Simbólicos)
• Variable usada en Jcl mediante el prefijo “&”
• Asignación de valores vía:
– PROC. Asigna valores de default
– EXEC. Sobreescribe valores de Proc de default
– SET. Asigna valores in Procs y no Procs
• Se codifican valores en cualquier orden en sentencias PROC, EXEC
o SET
• Ejemplo:
//STP
EXEC
PROC P1,V=VOL001
//A
DD
VOL=SER=&V, ... ... ...
• Resultado:
//A
DD
VOL=SER=VOL001
30
Parámetros Simbólicos
• Ejemplo:
Jobstream:
//JOB1
//STP1
//S1.D
JOB
EXEC
PROC=PRUEBA,CARGO=7834,DP=OLD
DD
*
... Datos ...
Proc “PRUEBA”:
//S1
EXEC
//A
... ... ... ... ... ... ... ...
PGM=NOMINA,ACCT=&CARGO
DD
DSN=ENTRADA,DISP=&DP
Substitución Resultante:
//S1
EXEC
PGM=NOMINA,ACCT=7834
//A
DD
DSN=ENTRADA,DISP=OLD
... ... ... ... ... ... ... ...
//D
DD
*
... Datos ...
31
Ejemplos de JCL´
JCL´s
• JCL “disparador” de la ejecución de un PROC
//MCJCE100 JOB (EEMC,1),'MC',
//
CLASS=A,
//
REGION=0M,
//
MSGCLASS=X,
//
MSGLEVEL=(1,1),
//
SCHENV=SEBATPROD
//*
//JOBLIB
DD DSN=LDB2MXD0.DBD1.SDSNLOAD,DISP=SHR
//
DD DSN=MBVC.LOADLIB.BATCH,DISP=SHR
//
DD DSN=MBVC.LOADLIB.RUTINAS,DISP=SHR
//
DD DSN=CEE.SCEERUN,DISP=SHR
//
DD DSN=DB2.SDSNLOAD,DISP=SHR
//*
//MYLIB
JCLLIB ORDER=MBVC.PROCLIB
//*
//MCJCE100 EXEC MCPCE100,AMB=C
32
Ejemplos de JCL´
JCL´s
• PROC (Procedimiento)
//MCPCE100 PROC
//**********************************************************************
//*
*
//* SISTEMA: MC(MODULO DE MEDIOS DE PAGO)
*
//*
*
//* PROCESO: MCPCE100.
*
//*
*
//* OBJETIVO : VERIFICA LAS FECHAS ACTIVAS PARA LA ESTRATEGIA 10 ACTUA *
//*
-LIZANDO SU STATUS DEPENDIENDO DEL LA FECHA ACTUAL Y EL *
//*
PERIODOD DE ACTIVACION
*
//*
*
//* REALIZO : FJC
*
//*
*
//* FECHA
: NOVIEMBRE 2002
*
//*
*
//**********************************************************************
33
Ejemplos de JCL´
JCL´s
• PROC (Procedimiento)
//**********************************************************************
//*
PROGRAMA MC4CE100
*
//**********************************************************************
//MCPCE101 EXEC PGM=IKJEFT1A
//SYSPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSDBOUT DD SYSOUT=*
//SYSABOUT DD SYSOUT=*
//SYSUDUMP DD DUMMY
//SYSOUT
DD SYSOUT=*
//SYSTSIN DD DSN=MBV&AMB..CONTROL(MCE10001),DISP=SHR
//*
34
Utilerías
• De archivos
–
–
–
–
–
–
–
–
Crear
Copiar
Imprimir
Actualizar
Reorganizar
Clasificar
Intercalar
Comparar
• Ambos grupos son controlados mediante sentencias de Jcl y
declaraciones de control propias de ellas
• Reducen el costo de adquirirlas o escribirlas con personal de
programación debido al uso tan común que se hace de ellas
35
Tipos de Utilerías
• De Aplicación.
– Normalmente se usan para crear, modificar o borrar conjuntos de
datos.
• De Clasificación/Mezcla.
– Permiten clasificar o mezclar información proveniente de archivos
• Para archivos VSAM.
– Permiten crear, mantener, borrar o actualizar información
contenida en archivos VSAM
• De mantenimiento DASD.
– Permiten darle mantenimiento a los Dispositivos de Acceso Directo,
incluyendo respaldos y recuperaciones
• De control de espacio.
– Se encargan de mantener la disponibilidad de espacio de DASD
36
Utilería IEFBR14
• Ejemplo:
//MYJOB
JOB
(ACC),‟AMS‟,
//
REGION=4096K,NOTIFY=IDSAMS
//
MSGCLASS=X
//*
//* EJEMPLO DE CREACION DE ARCHIVO A TRAVES DE LA UTILERIA
//* IEFBR14
//*
//STEP1
EXEC
PGM=IEFBR14
//SYSUT
DD
DSN=ARCHIVO.NUEVO,DISP=(NEW,CATLG,DELETE),
//
SPACE=(CYL,(10,1),RLSE),UNIT=TMPDA
//*
//* EJEMPLO DE BAJA DE ARCHIVO A TRAVES DE LA UTILERIA IEFBR14
//*
//STEP2
EXEC
PGM=IEFBR14
//SYSUT2
DD
DSN=ARCHIVO.BAJA,DISP=(OLD,DELETE)
//
37
Ejercicio 2 de JCL
• Con el usuario y password asignado, entre al mainframe
de acuerdo al procedimiento anteriormente descrito
• Elabore el JCL que permita generar con la utilería
IEFBR14 un archivo secuencial de 2 cilindros de espacio
primario, 1 cilindro de espacio secundario y longitud de
registro de 80 bytes
• El archivo se deberá llamar DSRNXXX.PS.PRUEBA
• El JCL se deberá llamar JEJER02
38
Ejercicio 2 de JCL
• Elabore el JCL que permita generar con la utilería
IEFBR14 un archivo secuencial de 10 cilindros de
espacio primario, 2 cilindros de espacio secundario y
longitud de registro de 100 bytes
• El archivo se deberá llamar DSRNXXX.PS.PRUEBA1
• Elabore el JCL que borre el archivo PRUEBA1 a través
de la utilería IEFBR14
• Tome de referencia los ejemplos de la diapositiva 39
• El JCL se deberá llamar JEJER021
39
Utilería IEBGENER
• Copia de archivos, ejemplo:
//MYJOB JOB
(ACC),‟AMS‟,
//
//
//*
//* EJEMPLO DE COPIA DE ARCHIVO
//*
//STEP1
EXEC
//SYSUT1
DD
//SYSUT2
DD
//
//
//*
//MYJOB JOB
(ACC),‟AMS‟,
//
//
//*
//* EJEMPLO DE COPIA DE ARCHIVO
//*
//STEP1
EXEC
//SYSUT1
DD
//SYSUT2
DD
//*
REGION=4096K,NOTIFY=IDSAMS
MSGCLASS=X
A UNO NUEVO
PGM=IEBGENER
DSN=ARCHIVO.UNO,DISP=SHR
DSN=ARCHIVO.DOS,
DISP=(,CATLG,DELETE),DCB=*.SYSUT1,
UNIT=TMPDA,SPACE=(CYL,(10,1),RLSE)
REGION=4096K,NOTIFY=IDSAMS
MSGCLASS=X
EN OTRO YA EXISTENTE
PGM=IEBGENER
DSN=ARCHIVO.ABCD,DISP=SHR
DSN=ARCHIVO.WXYZ,DISP=SHR
40
Utilería IEBGENER
• Imprimir el contenido de archivos, ejemplo:
//MYJOB
JOB
(ACC),‟AMS‟,
//
REGION=4096K,NOTIFY=IDSAMS
//
MSGCLASS=X
//*
//* EJEMPLO DE UNA DESCARGA A IMPRESORA ARCHIVO EN SYSOUT
//* VISTO EN PANTALLA
//*
//STEP1
EXEC
PGM=IEBGENER
//SYSUT1
DD
DSN=ARCHIVO.EN.DISCO,DISP=SHR
//SYSUT2
DD
SYSOUT=X
//SYSPRINT
DD
SYSOUT=Z
41
Ejercicio 3 de JCL
• Por medio del editor de TSO genere datos de prueba en
el archivo DSRNXXX.PS.PRUEBA
• No importa el formato o contenido del archivo
• Por medio de la utilería IEBGENER copie el archivo
DSRNXXX.PS.PRUEBA al archivo
DSRNXXX.PS.PRUEBA.NUEVO
• El JCL se deberá llamar JEJER03
42
Utilería EIBCOPY
• Mantenimiento a datasets particionados
• Funciones:
– Copia de librerías
– Compresión de librerías
• Sentencias DD a utilizarse:
– SYSIN. Define las sentencias de control. Normalmente residen
–
–
–
–
como input-stream, sin embargo, también pueden estar en algún
archivo
SYSPRINT. Archivo secuencial que será usado para listar
sentencias y mensajes. Este archivo puede grabarse en sysout, en
disco o en cinta, según se necesite
SYSUT1. Archivo particionado de entrada
SYSUT2. Archivo particionado de salida
SYSUT3 y SYSUT4. Areas auxiliares de espacio
43
Utilería EIBCOPY
• Sentencias de Control:
– COPY. Indica el inicio de la operación y contiene los operandos:
–
–
–
–
INDD. Librería o librerías de entrada
OUTDD. Librería de destino
R. Especifica reemplazo de miembros existentes
LIST(YES/NO). Lista los miembros copiados
– SELECT. Especifica los miembros a copiar, operandos:
– MEMBER. Nombre del miembro a copiar. Seguido y separado con
coma, se puede especificar un nuevo nombre de miembro
– R. Especifica reemplazo de miembros existentes
– EXCLUDE. Elimina de la operación de copia, algunos miembros del
archivo de entrada, operandos:
– MEMBER. Nombre del o los miembros a excluir. Cada miembro
especificado debe ser único
44
Utilería EIBCOPY
• Ejemplos:
//MYJOB
JOB
(ACC),‟AMS‟,
//
REGION=4096K,NOTIFY=IDSAMS
//
MSGCLASS=X
//*
//* EJEMPLO DE COMPRESION DE UN ARCHIVO PARTICIONADO
//*
//STEP1
EXEC
PGM=IEBCOPY
//SYSUT1
DD
DSN=IDSAMS.FTE.LIB,DISP=OLD
//SYSUT3
DD
SPACE=(CYL,(10,5))DISP=(,DELETE)
//SYSUT4
DD
SPACE=(CYL,(10,5))DISP=(,DELETE)
//SYSPRINT
DD
SYSOUT=X
//SYSIN
DD
*
COPY INDD=SYSUT1,OUTDD=SYSUT1
//*
45
Utilería EIBCOMPR
• Comparación de data sets
• Funciones:
– Dos archivos secuenciales
– Dos archivos particionados o extendidos
– Data sets fijos, variables, indefinidos, bloqueados o
desbloqueados
– No utilizable para modulos de carga
• Consideraciones de igualdad:
– Los dos archivos contienen el mismo número de registros
– Correspondencia de registros en llave y datos
46
Utilería EIBCOMPR
• Sentencias DD a utilizarse:
– SYSIN. Define las sentencias de control.
– SYSPRINT. Archivo secuencial que será usado para listar
sentencias y mensajes.
– SYSUT1. Archivo de entrada
– SYSUT2. Archivo de salida
– SYSUT3 y SYSUT4. Areas auxiliares de espacio
• Sentencias de Control:
– COMPARE. Indica la organización de archivos, contiene los
operandos:
– TYPORG. Especifica la organización que tienen los archivos de
entrada, opciones: PS – Secuencial, PO – Particionado
47
Utilería EIBCOMPR
• Ejemplos:
//MYJOB JOB
(ACC),‟AMS‟,
//
REGION=4096K,NOTIFY=IDSAMS
//
MSGCLASS=X
//*
//* EJEMPLO DE COMPARACION DE ARCHIVOS SECUENCIALES
//*
//PASO
EXEC
IEBCOMPR
//SYSPRINT
DD
SYSOUT=X
//SYSUT1
DD
DSN=DATASET.IND1,DISP=SHR
//SYSUT2
DD
DSN=DATASET.OUT1,DISP=SHR
//SYSIN
DD
DUMMY
//MYJOB JOB
(ACC),‟AMS‟,
//
REGION=4096K,NOTIFY=IDSAMS
//
MSGCLASS=X
//*
//* EJEMPLO DE COMPARACION DE ARCHIVOS PARTICIONADOS
//*
//PASO
EXEC
IEBCOMPR
//SYSPRINT
DD
SYSOUT=X
//SYSUT1
DD
DSN=DATASET.ONE,DISP=SHR
//SYSUT2
DD
DSN=DATASET.TWO,DISP=SHR
//SYSIN
DD
*
COMPARE
TYPORG=PO
48
Utilería ICEMAN (DFSort)
• Programa utilería para: Clasificar, Fusionar y Copiar
información de archivos
• Alternativamente puede realizar las funciones de:
– Filtrado de información innecesaria
– Editar o reformatear registros
– Sumar información numérica
• Sentencias DD a utilizarse:
– SYSIN. Define las sentencias de control.
– SYSPRINT. Archivo secuencial que será usado para listar
sentencias y mensajes.
– SYSUT1. Archivo de entrada
– SYSUT2. Archivo de salida
49
Utilería ICEMAN
• Sentencias de Control:
–
–
–
–
–
–
–
–
INCLUDE. Incluye registros en el archivo de salida
INREC. Reformatea el registro antes de que sean procesados
SORT. Especifica una acción de clasificación
OMIT. Omite registros en el archivo de salida
OUTREC. Omite registros en el archivo de salida
MERGE. Especifica una acción de fusión de archivos
SUM. Sumariza campos
END. Termina la lectura por SYSIN o SORTCNTL
50
Iceman - Sentencia INCLUDE
• Incluye registros en el archivo de salida mediante un criterio de
selección
• Ejemplo:
INCLUDE COND=(1,10,CH,EQ,50,10,CH)
Se incluyen en el archivo de salida solamente aquellos registros en los
cuales el campo de 10 bytes carácter iniciando en el byte 1 sea
igual al campo de 10 bytes carácter que inicia en el byte 50
51
Iceman - Sentencia INREC
• Reformato de registros antes de que sean procesados
• Define qué partes del registro de entrada serán incluidas en el
registro reformateado de entrada y el orden en que deberán
aparecer
• Ejemplos Sintaxis-1:
INREC FIELDS=(20,4,12,3)
Reformatea el registro de entrada de la posición 20-23 y de la 12-14 en las
posiciones 1-4 y 5-7 respecto al archivo de salida
INREC FIELDS=(10,3,20,8,33,11,5,1)
Reformatea el registro de entrada para dejar en salida:
Posiciones
1-3
4-11
12-22
23
El campo
El campo
El campo
El campo
de
de
de
de
entrada de
entrada de
entrada de
entrada en
las posiciones 10-12
las posiciones 20-27
las posiciones 33-43
la posición 5
52
Iceman - Sentencia SORT
• Ejemplo de SORT:
SORT FIELDS=(2,5,CH,A),SIZE=29483
El campo de argumento de sort inicia en la columna 2 con 5 bytes
de longitud tipo carácter, la secuencia de orden es ascendente. El
archivo a clasificarse deberá tener 29483 registros
53
Iceman - Sentencia OMIT
• Omite registros del archivo de entrada
• Ejemplos:
OMIT COND=(1,10,CH,EQ,50,10,CH)
Omite los registros de entrada cuyo campo de 10 bytes, que inicia
en la columna 1 y es CHaracter, sea igual al campo de 10 bytes
que inicia en la columna 50 y tambien es CHaracter
OMIT COND=(27,1,CH,EQ,C'D„)
Omite los registros de entrada los cuales contengan el carácter „D‟
en la posición 27
54
Iceman - Sentencia OUTREC
• Reformatea la salida de registros
• Define que partes del registro de entrada serán incluidas en el
registro reformateado de salida y el orden en que deberán aparecer
55
Iceman - Sentencia MERGE
• Especifica una operación de MERGE o COPY, sintaxis:
MERGE FIELDS=(pos,lon,form,seq),FORMAT=form,opc
MERGE FIELDS=COPY
• Los parámetros y opciones de MERGE son similares a los de la
sentencia SORT
• Remitase a las láminas de descripción de SORT, para la descripcíón
de ésta sentencia
56
Iceman - Sentencia SUM
• Proporciona una opción de obtener sumatorias o totales
de determinados campos de un archivo
• Ejemplos:
SUM FIELDS=(41,8,ZD,49,4,FI)
Suma los datos de un campo desempacado de 8 bytes que empieza en la
columna 41 y de un campo entero de punto fijo de 4 bytes que comienza
en la columna 49
SUM FIELDS=(21,8,49,4),FORMAT=ZD
Suma los datos de un campo numérico de 8 bytes que empieza en la columna
21 a los de un campo numérico de 4 bytes que comienza en la columna
49
57
FIN DE MODULO
Derechos de autor
• Este producto has sido elaborado por
• Jorge Godínez Rodríguez.
• Derechos reservados
– Prohibida su reproducción parcial o total
59
Descargar