Sie sind auf Seite 1von 90

qu es el DFSORT?

Es el producto de IBM encargado de clasificar, mezclar, copiar, analizar y generar informes


Maneja datset de longitud fija o variable. (FB,FBS, VB, VBS) Soporta ficheros QSAM y VSAM

qu cosas se pueden hacer con dfsort?


Clasificar Mezclar Copiar Juntar Selecionar un subconjunto de registros. Se puede incluir u omitir los registros que cumplan ciertor criterios Reformatear los registros de multiples formas Sumar los valores de ciertos registros al clasificar o mezclar Crear varios archivos de salida Generar informes en una pasada Convertir archivos VB a FB, o Generar registros de prueba o repetir registros Alterar la secuencia de clasificacin al clasificar o mezclar

Modificar los registros


Construir registros item a item Remplazar ciertas columnas Reformar diferentes registros de distintas maneras Editar, cambiar, aadir o borrar campos Convertir campos de fecha de un formato a otro y realizar clculos de fecha Realizar operaciones de busqueda y reemplazo. Operar sobre grupos de registros Convertir campos con posicin y longitud variable a fijos, mediante un parser Insertar blancos, ceros, cadenas, fechas (actual, pasada o futura), hora, nmeros de secuencia, constantes decimales y el resultado de operaciones aritmeticas en cualquier punto del registro de entrada.

Resumen de las sentencias de control del DFSORT


SORT Describes the fields for a sort application, or requests a copy application. MERGE Describes the fields for a merge application, or requests a copy application. OPTION Overrides installation defaults, or requests optional features or a copy application. INCLUDE Describes the criteria to be used to include records before they are sorted, copied or merged OMIT Describes the criteria to be used to omit records before they are sorted, copied or

merged. INREC Describes how records are to be reformatted before they are sorted, copied or merged. OUTREC Describes how records are to be reformatted after they are sorted, copied or merged. SUM Describes how fields are to be summed after sorting or merging. OUTFIL Describes various types of processing to be performed for one or more output data sets after sorting, copying or merging. JOINKEYS, JOIN, REFORMAT Describes a "joinkeys" application for joining two files on one or more keys.

Otras sentencias de control del DFSORT

ALTSEQ MODS RECORD DEBUG END

Describes changes to the normal translation table. Describes user exit routines. Supplies data set record type and length information when needed. Requests diagnostic features. Marks the end of the control statements.

Reglas generales de codificacin

LABEL Empieza en la columna 1. Actualmente no sirve para nada Operation Es una palabra que identifica el tipo de sentencia. Entre la 2 y la 71 Operands Dos o mas operandos separados por , o ;. Sigue al campo operacin separado por uno o mas blancos. Debe empezar en la primera linea de la sentencia Comentarios Siguen al campo operandos separados por al menos un blanco

Si el campo operandos termina en , o ; se entiende que la sentencia continua en la siguiente linea en el primer carcter no blanco de las columnas 2 a 71

Campos de control

Orden de procesado de registros

Orden de procesado de registros (cont)

Definicin de campos

Un campo se define por su posicin (p), su longitud (m) y su formato (f) P La posicin indica en que byte del registro empieza el campo, y opcionalmente, en que bit dentro del byte (B.b). En registro variables, la primera posicin de datos es la 5 M La longitud indica cuantos bytes y bits tiene el campo. El mximo es 4096 F especifica el formato del campo. Los ms corrientes son CH,AQ, ZD, PD, BI, AC y formatos de fecha

Simbolos
Se pueden utilizar smbolos para definir campos, constantes o columnas de salida de informes Se pueden utilizar smbolos del sistemas para definir constantes

Para utilizar simbolos en el DFSORT es necesario: 1. Definir los simbolos, utilizando sentencias con el formato adecuado 2. Identificarlos al DFSORT mediante la DD SYMNAMES 3. Referenciarlos en las sentencias de control

Formato sentencias simbolos

Symbol,value remark
Symbol Value: Es sensible a mayusculas. Indica el nombre del simbolo. No tiene que empezar en la columna 1 Puede representar un campo (p,m,f o p,m), un campo Parse o una constante Se puede utilizar el * para asignar la siguiente posicin a p SKIP,n POSITION,q POSITION,symbol ALIGN,H ALIGN,F ALIGN,D sirven para recolocar la siguiente

posicin

El simbolo = sirve para asignar a p,m o f el valor del campo anterior

Ejemplo de definicin de simbolos


Symbola,6,20,CH Symbola1,=,8,= Symbola2,*,12,= Symbold,*,=,ZD Rpt_hdr,S Job &JOBNAME. was run on Sysplex &SYSPLEX. on &LWDAY

Equivale a
Symbola,6,20,CH Symbola1,6,8,CH Symbola2,14,12,CH Symbold,26,12,ZD Rpt_hdr,C Job BIGTEST was run on Sysplex MAS2 on MON

Simbolos SET y PROC Symbols en sentencias de control


JP0 JP9

//SRTPROC PROC //RFSORT EXEC PGM=SORT,PARM='JP9"&SRTCOND",LIST' //SORTIN DD DISP=SHR,DSN=PKRUTZA.CLEANUP.RACFDBU //SORTOUT DD DISP=SHR,DSN=SLKACZ.CLEANUP.OUTPUT(&SRTCOND) //SORTWK01 DD UNIT=SYSALLDA,SPACE=(CYL,(1,5)) //SORTWK02 DD UNIT=SYSALLDA,SPACE=(CYL,(1,5)) //SORTWK03 DD UNIT=SYSALLDA,SPACE=(CYL,(1,5)) //SORTWK04 DD UNIT=SYSALLDA,SPACE=(CYL,(1,5)) //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSIN DD * //STEP1 SET SRTCOND='BOHART' SORT FIELDS=(10,8,CH,A) // EXEC SRTPROC INCLUDE COND=((5,4,CH,EQ,C'0205'), //STEP2 SET SRTCOND='PKRUTZA' AND,(39,8,CH,EQ,JP9)) // EXEC SRTPROC OPTION VLSHRT //STEP3 SET SRTCOND='RALEY' OUTFIL VTOF,OUTREC=(C'CONNECT ',10,8, // EXEC SRTPROC C' GROUP(,19,8, //STEP4 SET SRTCOND='RAMIREZ' C') OWNER(',39,8,C')', // EXEC SRTPROC 80:X),REMOVECC //STEP5 SET SRTCOND='RAMON' // PEND // EXEC SRTPROC

Clasificar

Ejemplo

Mezclar
La sintaxis es igual que la del SORT Mezcla registros de varios ficheros de entrada, identificados por SORTINxx Los archivos deben estar previamente clasificados por los campos de la sentencia MERGE

Modificar secuencia ordenacin


Mediante la sentencia ALTSEQ podemos modificar el orden de clasificacin de alguno (formato AQ) o todos los campos alfabticos del sort (OPTION CHALT) Tambien sirve para crear una tabla de traduccin que se puede utilizar con INREC y OUTREC

Copiar
Para copiar un fichero de entrada, se especifica COPY en el campo FIELDS de la sentencia SORT o MERGE. Tambin se puede utilizar el parametro COPY de la sentencia OPTION
SORT FIELDS=COPY MERGE FIELDS=COPY OPTION COPY

Archivos VB
DFSORT procesa la RDW. La primera posicin de datos es, por lo tanto, la 5
Para evitar que el sort termine con error si falta en el registro algun campo de clasificacin, se debe usar la sentencia VLSHRT

Seleccionar registros
Al DFSORT se le indican los registros a incluir u omitir del proceso mediante las sentencias INCLUDE y OMIT. Igualmente se le puede indicar que registros omitir o incluir en una salida determinada de un proceso multi-salida mediante el operando OMIT e INCLUDE de la sentencia OUTFIL No se pueden utilizar las dos simultaneamente. Los parmetros son comunes a ambas formas, excepto el operando FORMAT, invalido en la sentencia OUTFIL.

Expresiones lgicas
Una expresin lgica es la combinacin de una o ms relacin condicional, sobre los campos del registro de entrada. Las posibles condiciones relacionales son:
Comparaciones de un campo con otro o una constante Comparaciones de subcadenas Test de bits Comparaciones de fecha Test numricos

Comparaciones

Tipos de constantes:
Pueden ser un nmero decimal (n, +n, n), una cadena de caracteres (Cxx...x), o una cadena hexadecimal (X'yy...yy').

Se puede utilizar la fecha actual, una fecha futura o pasada como un numero decimal o una cadena de caracteres, mediante el formato fmtdat[+/-d]

Constantes de fecha

Busqueda de subcadenas
Se identifica poniendo en el campo formato el valor SS Hay dos formas de busqueda:
Comprobar si un campo esta dentro de una lista de subcadenas La longitud del campo es menor que la constante Buscar una cadena dentro del campo. La longitud del campo es mayor que la constante

Comparacion de bits
Hay dos mtodos:
Lgica de bits Comparacin de bits.

Comparacion bits. Ejemplos

Comparacin de fechas

Comprobacin de numeros
Se puede comprobar que un campo tenga valores numricos en formato carcter, decimal con zona o empaquetados (CH,ZD o PD)

Seleccin registros y VB
Se aplican las consideraciones generales, expuestas en SORT/MERGE Si se sabe que algn registro no contiene algn campo de comparacin, se puede utilizar la opcin VLSCMP, que rellena con ceros binarios el registro corto. La combinacin de VLSHRT y VLSCMP genera tres comportamientos en registros cortos:
1. VLSCMP permite que se realicen las comparaciones. Como el registro se alarga con ceros, las comparaciones de los campos cortos suelen ser falsas. El resto, pueden ser FALSE o TRUE 2. NOVLSCMP y VLSHRT considera todas las comparaciones como falso si el registro es corto 3. NOVLSCMP y NOVLSHRT provocan el final del sort si hay registros cortos

Suma de registros
Mediante la sentencia SUM, se pueden especificar campo que se sumarn cuando varios registros tengan la misma clave Se pueden sumar binarios (BI), coma fija (FI), decimal empaquetado (PD), decimal con zona (ZD) y coma flotante (FL). Estan implicados dos grupos de campos:
Campos de control (sentencia SORT) Campos de suma (sentencia SUM)

Solo se conserva un registro de cada grupo. Si se quiere que sea el primero, usar OPTION EQUALS Si solo se desea eliminar duplicados, especificar FIELDS=NONE

Sentencia INREC

Modificar registros
Se pueden modificar registros mediante las sentencia INREC, OUTREC y OUTFIL. La sintaxis es similar, solo cambia el momento en que se modifica el registro. Se pueden usar estas sentencias juntas Se pueden realizar modificaciones muy variadas. Trabajan tanto con campos fijos (posicin y longitud invariable) como con variables (distinta posicin y longitud en cada registro) Se puede modificar el registro con los siguientes mtodos:
BUILD Modifica el registro especificando todos sus campos uno a uno OVERLAY Solo indica que partes del registro modificar. Puede ampliar registro FINDREP Busca y reeplaza cadenas en el registro IFTHEN Distintas modificaciones para distintos registros

Modificar: Reordenar campos


Una modificacin bsica es reordenar los campos del registro Tan solo hay que indicar el nuevo orden deseado Se puden cambiar de posicin, duplicar o suprimir campos Se puede indicar la nueva posicin prefijando con c: En registros VB no se puede suprimir la RDW. SIEMPRE se debe incluir al principio En VB se puede omitir en el ltimo campo la longitud, para indicar hasta el final del registro Ejemplo:
SORT FIELDS=(106,4,CH,A) SUM FIELDS=(162,4,BI,166,4,BI) OUTREC FIELDS=(106,4,10:166,4,162,4)

Modificar: Insertar constantes


Se pueden insertar distintos tipos de constantes en los registros:
Ceros binario: se indica mediante [n]Z. Inserta n ceros Blancos:Se indica mediante [n]X Cadenas hexadecimales: [n]Xyy..yy. Debe ser de longitud par Cadenas de caracteres: [n]Cxx..xx. Valores de fecha (actual, futura o pasada) y hora en distintos formatos:
Los de INCLUDE DATE[=(abc[d])] DATENS[=(abc)] YDDD[=(abc) YDDDNS[=(ab) TIMEn[P/[(c )] separador TIME[=(ab[c])] TIMENS[=(ab)] abc puede ser M, Y, D, o 4. D es el separador ab puede ser Y, D o 4. C es el separador n es el formato (1 a 3) P si es decimal. C el ab es 12 o 24 (formato de 12 o 24 horas) c separador

Modificar: Insertar numero de secuencia

Mediante este parmetro se puede insertar un nmero de secuencia en el registro.


N Indica el ancho del campo de salida Fs Formato del campo START Indica el primer valor a utilizar. Por defecto, 1 INCR valor a sumar a START. Por defecto 1 RESTART Indica que se vuelva a utilizar START cuando un cierto campo cambie de valor

Modificar: Realizar traducciones


Se puede traducir los campos de entrada utilizando el formato p,m,TRAN= de las siguientes formas:
De minusculas a mayusculas y viceversa (LTOU, UTOL) De Ascii a Ebcdic y al reves (ATOE, ETOA) De Hexadecimal a carcter y vice (HEX, UNHEX) De binario a carcter y vuelta (BIT, UNBIT Segn las tabla ALTSEQ (ALTSEQ)
Entrada: WILLIAMBAYLESS OUTREC FIELDS=(1,1,2,14,TRAN=UTOL,X,16,1,17,14,TRAN=UTOL) Produce: William Bayless

Ejemplo:

Modificar: Traducir campos numricos


Se pueden convertir campos numericos a distintos formatos, para hacerlos legibles Las opciones disponibles son:
P,m,f,Mn Utiliza una de las 27 mascaras predefinidas P,m,f,EDIT=(mascara) Utiliza una mascara personalizada P,m,f,[TO=]fo Convierte de formato f a fo

Modificacin: mascaras de edicin


Las mascaras de edicion pueden tener los siguientes caracteres:
I indica un digito no significativo T indica un digito significativo S Indica el signo Cualquier otro carcter se muestra tal cual

Modificacin: Clculos con campos o constantes decimales


Se pueden realizar clculos con campos o constantes numricas Las operaciones permitidas son, por orden de prioridad:
MIN, MAX MUL, DIV y MOD ADD y SUB

Se pude usar parentesis para agrupar operaciones El resultado se calcula como ZD de 15 digitos y se le puede editar como se vio previamente (Mn, edit, TRAN, etc) Ejemplo:
OUTREC FIELDS=(1,8,5X,((11,6,PD,MUL,+10),SUB,31,7,PD), EDIT=(SI,III,III,IIT.TTT),SIGNS=(,-))

Modificacin: Conversiones y clculos con fechas


Si el campo representa una fecha (formatos Y2x e Y4x) se puede editar, convertir o realizar calculos con l. Las conversiones disponibles son:
TOJUL=Yaa[(s)] - convierte a juliano, opcionalmente con separador TOGREG=Yaa[(s) - convierte a gregoriano con o sin separador WEEKDAY=CHAR3 - convierte al nombre del dia en ingles en 3 caracteres (ej.: (MON, WED,SUN) WEEKDAY=CHAR9 - convierte al nombre del dia en ingles en 9 caracteres (ej.: (MONDAY) WEEKDAY=DIGIT1 - convierte a 1 digito que indica el dia de la semana (empezando por el domingo ?) ejempl0, C'2' para Lunes.

Se pueden realizar clculos sobre las fechas, y posteriormente editarlos o convertirlos. Los clculos permitidos son:
ADDDAYS, ADDMONS y ADDYEARS para sumar dias, meses o aos SUBDAYS, SUBMONS y SUBYEARS para restar dias, meses o aos DATEDIFF clcula la diferencia en das entre dos fechas NEXTDday clcula el siguiente da que cae en day (SUN, MON, TUE, WED, THU, FRI or SAT). PREVDday clcula el anterior da que cay en day (SUN, MON, TUE, WED, THU, FRI or SAT). LASTDAYW, LASTDAYM, LASTDAYQ y LASTDAYY clcula el ltimo da de la semana, mes, trimestre o ao

Modificacin: Busqueda en tablas

Se puede utilizar un campo para buscarlo en una tabla y reemplazarlo por el valor asociado a la clave:
V Indica la longitud del resultado Find, set definen la tabla. Cuando el campo valga Find, se cambiar por set NOCHANGE sirve para indicar el valor a usar si no se encuentra la clave en la tabla

Ejemplo:
OUTFIL FILES=1,OUTREC=(11,1,CHANGE=(6,CR,CREAD, CU,CUPDATE, XFF,CEMPTY, CX,35,6, CA,CALTER), NOMATCH=(11,6), 4X,21,1,CHANGE=(10, B.1......,CVSAM, B.0......,CNON-VSAM))

Modificacin: Justificar y exprimir(JFY y SQZ)


JFY parameter allows you to left-justify or right-justify the data in a field. Can be used with INREC, OUTREC and OUTFIL.

For a left-justified field, leading blanks are removed and the characters from the first nonblank to the last nonblank are shifted left, with blanks inserted on the right if needed.
For a right-justified field, trailing blanks are removed and the characters from the last nonblank to the first nonblank are shifted right, with blanks inserted on the left if needed.

JFY Example
INREC BUILD=(1,30,JFY=(SHIFT=LEFT)) SORT FIELDS=(1,30,CH,A)

Before

After

----+----1----+----2----+---3 ***************************** * History Psychology Business Biology


Science

----+----1----+----2----+---3 ***************************** * Biology Business History Psychology Science

JFY (cont.)
JFY has optional parameters that provide additional functions. Specific leading and trailing characters can be changed to blanks before justification begins

A leading string can be inserted


A trailing string can be inserted

The output length can be changed.

JFY Example
OPTION COPY OUTREC BUILD=(1,30,JFY=(SHIFT=RIGHT,LEAD=CI Like ))

Before ----+----1----+----2----+---3 ***************************** * History Psychology Business Biology Science

After ----+----1----+----2----+---3 ***************************** * I Like History I Like Psychology I Like Business

SQZ
SQZ parameter allows you to left-squeeze or rightsqueeze the data in a field. Can be used with INREC, OUTREC and OUTFIL. For a left-squeezed field, all blanks are removed and the characters from the first nonblank to the last nonblank are shifted left, with blanks inserted on the right if needed. For a right-squeezed field, all blanks are removed and the characters from the last nonblank to the first nonblank are shifted right, with blanks inserted on the left if needed.

SQZ Example
OPTION COPY OUTREC OVERLAY=(1,30,SQZ=(SHIFT=LEFT))

Before ----+----1----+----2----+---3 ***************************** <tag> History </tag> <tag> Psychology </tag> <tag> Business </tag> <tag> Biology </tag> <tag> Science </tag>

After ----+----1----+----2----+---3 ***************************** * <tag>History</tag> <tag>Psychology</tag> <tag>Business</tag> <tag>Biology</tag> <tag>Science</tag>

SQZ (cont.)
SQZ has optional parameters that provide additional functions.

Specific characters can be changed to blanks before squeezing begins


A leading or trailing string can be inserted A string can be inserted wherever a group of blanks is removed between the first nonblank and the last nonblank Blanks can be kept as is between paired apostrophes or paired quotes The output length can be changed.

SQZ Example
OPTION COPY OUTREC BUILD=(1,30,SQZ=(SHIFT=LEFT, PREBLANK=C'()',LEAD=C'<DETAIL>', MID=C',',TRAIL=C'</DETAIL>'))

Before ----+----1----+----2----+---3 ***************************** * (History) 5 (Psychology) 108 (Business) 92 (Biology) 207 (Science) 9

After ----+----1----+----2----+---3 ***************************** * <DETAIL>History,5</DETAIL> <DETAIL>Psychology,108</DETAI L <DETAIL>Business,92</DETAIL> <DETAIL>Biology,207</DETAIL>

Modificacin: FINDREP

Modificacin: FINDREP (2)


Permite sustituir una (IN=, OUT=) o varias cadenas (INOUT=(c1,r1,c2,r2...) en el registro de entrada Tambien se le puede indicar la posicion inicial de busqueda (STARTPOS), la posicin final (ENDPOS) y el nmero mximo de cambios a realizar (DO=n)

Modificacin: IFTHEN

Modificacin: IFTHEN
Los parametros OVERLAY, FINDREP, y BUILD o FIELDS permiten modificar todos los registros de la misma manera. Las clausulas IFTHEN permiten aplicar distintos cambios a distintos grupos de registros. Los tipos disponibles son:
WHEN=INIT: Aplica las clausulas BUILD, FINDREP o OVERLAY a todos los registros. Se procesa antes que el resto de los WHEN WHEN=GROUP: Define los registros que pertenecen a un grupo, y los campos, identificadores o nmeros de secuencia a propagar. Se procesa antes que el resto de los WHEN WHEN=(logexp): Aplica las clausulas de modificacin a los registros que cumplen la condicin WHEN=ANY: Aplica las clausulas de modificacin a los registros que cumplan alguna de las WHEN=(logexp) previas ninguna de las WHEN=(logexp)

WHEN=NONE: Aplica las clausulas de modificacin a los registros que no cumplan

previas

Modificacin: IFTHEN ejemplo


OPTION COPY OUTREC IFTHEN=(WHEN=INIT,
BUILD=(1:1,40,50:106,4,60:170,4,BI,EDIT=(TT.TT),70:170,4)), IFTHEN=(WHEN=(50,4,CH,EQ,CCOR,AND,70,4,BI,GT,+2000), OVERLAY=(70:C20%,X)), IFTHEN=(WHEN=(50,4,CH,EQ,CCOR,AND,70,4,BI,LE,+2000), OVERLAY=(70:C10%,X)), IFTHEN=(WHEN=(50,4,CH,EQ,CVALD),OVERLAY=(70:C25%,X)), IFTHEN=(WHEN=NONE,OVERLAY=(70:C15%,X))

Parse

PARSE
PARSE allows you to extract delimited fields (eg. CSV) and treat them as fixed-length fields. Can be used with INREC, OUTREC and OUTFIL. You can define the rules for extracting variable fields into fixed length %nn fields. Then use these %nn fields where you can use p,m (fixed) fields in BUILD, OVERLAY. You can edit, convert, justify, squeeze, translate, and do arithmetic with %nn fields.

PARSE Example (using CSV)


OPTION COPY OUTREC PARSE=(%01=(ENDBEFR=C',',FIXLEN=12), %02=(ENDBEFR=C',',FIXLEN=4), %03=(FIXLEN=14)), BUILD=(%01,%02,UFF,EDIT=(IIIT),%03,JFY=(SHIFT=RIGHT))
Before After

----+----1----+----2----+----3 ****************************** History,1010,Smith Psychology,401,Roberts Business,21,Johnson Biology,3,Tai

----+----1----+----2----+----3 ****************************** History 1010 Smith Psychology 401 Roberts Business 21 Johnson Biology 3 Tai

PARSE (cont.)
PARSE has parameters that allow you to define the rules for parsing many types of delimited fields. Specify the length of the %nn field Start at an absolute or relative position Start at or after one or more strings End at or before one or more strings Ignore string within paired apostrophes or quotes You can also use symbols for %nn fields. For example: Course,%01 Grade,%02

PARSE Example
INREC PARSE=(%01=(STARTAFT=C'Pet=',ENDBEFR=C' ',PAIR=QUOTE,FIXLEN=12), %02=(STARTAFT=C'Name=',ENDBEFR=C' ',PAIR=QUOTE,FIXLEN=10)), OVERLAY=(31:%01,JFY=(SHIFT=LEFT,PREBLANK=C'"'), 43:%02,JFY=(SHIFT=LEFT,PREBLANK=C'"')) SORT FIELDS=(31,12,CH,A,43,10,CH,A) OUTREC BUILD=(1,30) Before ----+----1----+----2----+----3 ****************************** Pet=Rat Name=Daisy Pet="Guinea Pig" Name=Larry Pet=Rat Name=Betty Pet=Hamster Name="John Boy"

PARSE Example (cont.)


After INREC ----+----1----+----2----+----3----+----4----+----5 ************************************************** Pet=Rat Name=Daisy Rat Daisy Pet="Guinea Pig" Name=Larry Guinea Pig Larry Pet=Rat Name=Betty Rat Betty Pet=Hamster Name="John Boy" Hamster John Boy After SORT and OUTREC ----+----1----+----2----+----3 ****************************** Pet="Guinea Pig" Name=Larry Pet=Hamster Name="John Boy" Pet=Rat Name=Betty Pet=Rat Name=Daisy

Crear varias salidas e informes


Se pueden crear ms de un archivo de salida e informes en una sola pasada sobre los datos resultantes de un sort, merge o copy mediante la sentencia OUTFIL Se pueden utilizar varias sentencias OUTFIL con parametros independientes. Sirve para:
Guardar un subconjunto secuencial de la entrada, mediante STARTREC y ENDREC Crear una muestra de los registros de entrada con SAMPLE. Guardar parte de los registors con INCLUDE y OMIT Limitar el nmero de registros seleccionados con ACCEPT Seleccionar los registros descartados por otras OUTFIL con SAVE Modificar los registros con PARSE, BUILD, OUTREC, OVERLAY, or IFTHEN. Tiene las mismas funcionalidades que las sentencias equivalentes y adems permite crear multiples registros a partir de uno y aadir registros en blanco Duplicar registors con REPEAT.

Crear varias salidas e informes (II)


Sirve para:
Duplicar registors con REPEAT. Repartir los registros en los archivos de salida con SPLIT, SPLITBY, y SPLIT1R Crear informes detallados con hasta tres niveles (report, page, y section) con BUILD, OUTREC, OVERLAY, IFTHEN, HEADERn, TRAILERn, SECTIONS, LINES, NODETAIL, BLKCCH1, BLKCCH2, BLKCCT1, y REMOVECC. Actualizar valores de cuenta y totales de registros finales con IFTRAIL. Convertir registros VB a FB (VTOF) o registros FB a VB (FTOV). Las sentencias OUTFIL se procesan en ltimo lugar

OUTFIL: Sintaxis

Outfil: Sintaxis(ii)

ICETOOL

Es una utilidad multi propositi que, basada en el DFSORT, realiza mltiples operaciones en un solo paso ICETOOL funciona a base de operadores: COPY Copia un archivo a uno o ms archivos de salida COUNT Imprime el numero de registros del archivo de entrada en un mensaje. Puede fijar el cdigo de retorno basandose en un chequeo de dicho nmero DATASORT Clasifica los registros entre una cabacera y un pie. DEFAULTS Imprime los valores de las opciones por defecto DISPLAY Imprime los valores o caracteres de los campos especificados. Puede generar informes con funciones de agregacin (Max, min, tot, ave, count) MERGE Mezcla varios archivos de entrada en uno o varios de salida MODE Establece el modo de operacin: STOP, CONTINUE o SCAN OCCUR Imprime una linea con el nmero de ocurrencias y el valor de cada valor nico de los campos especificados. Se puede limitar los valores impresos a los que cumplan ciertas condiciones.

ICETTOL (II)

RANGE Imprime un mensaje con la cuenta de los valores de un campo numrico que estan dentro del rango RESIZE Agrupa varios registros en uno o parte un registro en varios trozos SELECT Selecciona registros de un archivo y los escribe en salida segn el nmero de ocurrencias de determinados campos. Los registros no seleccionados se pueden volcar a otro archivo SORT Clasifica un dataset SPLICE Junta distintos campos procedentes de registros con la misma clave pero distinta informacin. Especie de JOINKEYS STATS imprime un mensaje con el minimo, maximo, valor medio y total de los campos numricos elegidos. SUBSET Selecciona registro de un archivo quitando los registros de cabeceras o de pies UNIQUE Imprime un mensaje con el nmero de valores nicos de los campos elegidos VERIFY Vlida los campos decimales elegidos, imprimiendo un mensaje con cada valor invalido

JOINKEYS
DFSORT permite hacer varios tipos de uniones entre dos ficheros con una o varias claves mediante las sentencias:
JOINKEYS Se deben codificar dos sentencias JOINKEYS, una para cada archivo. Cada uno es procesado por una subtarea. Cada sentencia JOINKEYS define la ddname y los campos de clasificacin de cada archivos, si ya estn clasificados, si hay que filtrar el archivo, etc
JOIN Opcional. Indica como construir los registros de salida. Si se omite, solo se conservan los registros emparejados, con todos sus campos. REFORMAT Opcional para JOIN ONLY. Indica que campos de cada fichero se ponen en la salida. Tambien se puede incluir indicadores y rellenos.

F1 y F2 se clasifican o copian mediante una subtarea. Se pueden utilizar un subconjunto de sentencias dfsort (INCLUDE, OMIT, INREC, SUM and OPTION) durante este proceso. La tarea principal utiliza la exit E15 para hacer la unin, que se pasa como entrada a un SORT o COPY, que puede utilizar la mayoria de las sentencias DFSORT

JOINKEYS: Orden de procesado

JOINKEYS

JOIN

REFORMAT

JOINKEYS: Ejemplo

DATEn-r and DATEn+r


DATEn-r and DATEn+r can be used to generate date values, in various forms, relative to todays date. These operands now allow you to compare date fields in various formats to past and future dates with INCLUDE, OMIT, and WHEN. These operands also allow you to insert past and future dates in your records with INREC, OUTREC, and OUTFIL. Some of the common Date types are: YYYMMDD, YYYMM, YYYYDDD

DATEn-r and DATEn+r Example


* Job was run on 2006/11/02 OPTION COPY INCLUDE COND=(22,10,CH,GE,DATE1(/)-7, AND,22,10,CH,LE,DATE1(/)+7)

Before ----+----1----+----2----+---3***************************** ** History starts on 2006/09/15 Psychology starts on 2006/10/23

After ----+----1----+----2----+---3***************************** ** Business starts on 2006/10/30 Biology starts on 2006/11/02

NUM
NUM parameter allows you to test a field for numerics (field,EQ,NUM) or non-numerics (field,NE,NUM) Can be used with INCLUDE, OMIT and WHEN. You can test for character (FS), zoned decimal (ZD) or packed decimal (PD) numerics or non-numerics.

NUM Example
OPTION COPY INCLUDE COND=(21,4,FS,EQ,NUM)

Before ----+----1----+----2----+---3 ***************************** * June 3210 Betty * April Daisy 0198 Rose 0020

After ----+----1----+----2----+---3

***************************** * June 3210 Daisy 0198 Rose 0020

FL
FL format can be used to convert 4-byte or 8-byte hexadecimal floating-point values to integer values. Can be used in INREC, OUTREC, OUTFIL, and DISPLAY in the same way other numeric formats (e.g. ZD, PD, UFF, SFF, etc) can. The fractional part of the FL value is truncated.

FL Example (displaying SMF data)


SORT FROM(SMFIN) TO(SMF71) USING(TY71) DISPLAY FROM(SMF71) LIST(SMF71RPT) TITLE('Low impact central storage frames') BREAK(15,4,CH,L'System: ') HEADER('Date') ON(11,4,DT1,E'9999-99-99') HEADER('Time') ON(7,4,TM1,E'99:99:99') HEADER('Min Frames') ON(925,8,FL,U10) HEADER('Max Frames') ON(933,8,FL,U10) HEADER('Avg Frames') ON(941,8,FL,U10) -

FL Example (displaying SMF data cont.)


Control statements in TY71CNTL: OMIT COND=(6,1,BI,NE,+71,OR,1,2,BI,LE,+18) SORT FIELDS=(15,4,CH,A,11,4,PD,A,7,4,BI,A)

Low impact central storage frames System: SYSA Date Time Min Frames ---------- -------- ----------2005-08-01 11:45:00 934215 2005-08-01 12:00:00 971599 2005-08-01 12:15:00 970192

- 1 Max Frames ----------1001596 1004939 982565 Avg Frames ----------963434 984437 973768

SPLIT1R
SPLIT1R allows you to split an input file into multiple output files with contiguous records. Can be used with the OUTFIL statement A specified number of records is written to each output data set Extra records are written to the last output data set.

SPLIT1R Example
OPTION COPY OUTFIL FNAMES=(OUT1,OUT2,OUT3),SPLIT1R=3

Before

After

Input DS has: Record1 Record2 Record3 Record4 Record5 Record6 Record7 Record8 Record9

Out1 has: Record1 Record2 Record3 Out2 has: Record4 Record5 Record6

Out3 has: Record7 Record8 Record9 Record10

Symbols for Columns (sym:)


A symbol (sym:) can now be used for an output column.

Can be used with INREC, OUTREC and OUTFIL, for an output column wherever you can use c:
For example, if Field1,18,6,CH and Col2,29 are defined in SYMNAMES, Field1: can be used for 18: and Col2: can be used for 29:

Sym: Example
//SYMNAMES DD * Course,11,20 //SYSIN DD * OPTION COPY OUTREC OVERLAY=(Course:Course,JFY=(SHIFT=LEFT))
Before ----+----1----+----2----+---3 ***************************** * History Psychology Business Biology After ----+----1----+----2----+---3 ***************************** * History Psychology Business Biology

INREC with SELECT and SPLICE


SELECT and SPLICE now allow you to use an INREC statement to reformat your records before they are selected or spliced. All of the operands of the INREC statement (PARSE, BUILD, OVERLAY, IFTHEN and IFOUTLEN) are now available with SELECT and SPLICE.

INREC with SELECT example


//TOOLIN DD * SELECT FROM(IN) TO(OUT) ON(1,20,CH) FIRSTDUP USING(CTL1) //CTL1CNTL DD * INREC OVERLAY=(1,20,JFY=(SHIFT=LEFT)) SORT FIELDS=(1,20,CH,A,21,3,ZD,D)

Before ----+----1----+----2----+---3 ***************************** * Vicky 253 Frank 852 David 212

After ----+----1----+----2----+---3 ***************************** * David 651 Frank 907

Mascaras de edicin predefinidas

Mascaras de edicin predefinidas (cont)

Mascaras de edicin predefinidas (cont)

Das könnte Ihnen auch gefallen