Buscar en este blog

Cargando...

lunes, 29 de agosto de 2016

Ficheros Secuenciales vs Ficheros VSAM ¿Cuál es el mejor?

Ficheros Secuenciales

Hoy vamos a tratar el tema, de archivos secuenciales contra VSAM, y para aquellos que son principiantes con el tema, vamos a desmenuzar un poco algo de cada uno de los ficheros con el fin de que a la hora de desarrollar sepan cual es el más óptimo.
Un archivo secuencial es aquel que consta de registros que se almacena y se accede a ellos de modo secuencial (de principio a fin), es decir que si quieres hacer la lectura del registro ocho, tienes que hacer las siete lecturas de los registros, para llegar.
Te recomendaría este tipo de archivo si quisieras que

  •          El tamaño de memoria fuera mínimo
  •          El archivo fuera fácilmente editable
Se pueden enumerar los principales atributos del archivo de organización secuencial


  • Un nuevo registro no se puede insertar ni en medio ni al principio del archivo, este siempre se insertara al final del archivo.
  • Después de especificar el tamaño de un registro en un archivo secuencial, no es posible, reducir o alargar un registro.
  • El orden de  los registros, tal y como se insertan no puede ser cambiado.
  •  Es posible la actualización de un registro, pero esto solamente es posible “a manita” a través de la opción del TSO,  de edición. Se puede también sobrescribir un registro, siempre y cuando la nueva longitud de registro sea la misma.
  • Los archivos secuenciales para la escritura de registros de salida son una buena opción, teniendo en cuenta, que no requieren de más especificaciones que el tamaño del registro sea el tamaño del archivo.

martes, 16 de agosto de 2016

Oferta de empleo: programador cobol

Saludos coboleros!

Desde la empresa SERRA JULIA, S.L. nos hacen llegar esta oferta, en la que buscan un programador cobol para mantenimiento de su software de facturación y gestión.

La empresa está situada en Cabrera de Mar, Barcelona.

Si estás interesado, puedes contactar con ellos en info[arroba]serrajulia[punto]com

Suerte!

lunes, 8 de agosto de 2016

JFY: alinear campos en JCL

Una opción que podemos utilizar tanto con OUTREC como con INREC es la de "justificar" a izquierda o derecha con JFY.

Os dejo a continuación un ejemplo de OUTREC para fichero de longitud fija FB y de longitud variable VB.

FICHERO DE ENTRADA:

+----1----+----2----+----3----+----4----+----5-
***************************** Top of Data *****

2015-01-01DATOS VARIABLES     T 20
FFFF6FF6FFCCEDE4ECDCCCDCE44444E4FF4444444444444 20150010014136205199123520000030200000000000000 -----------------------------------------------

2015-01-01DATOS VARIABLES LARGO   40 FFFF6FF6FFCCEDE4ECDCCCDCE4DCDCD444FF44444444444 20150010014136205199123520319760004000000000000 -----------------------------------------------
2015-01-01DATOS VARIABLES MAS L        45              
FFFF6FF6FFCCEDE4ECDCCCDCE4DCE4D44444444FF444444 20150010014136205199123520412030000000045000000 -----------------------------------------------

2015-01-01DATOS VARIABLES LARGO              51
FFFF6FF6FFCCEDE4ECDCCCDCE4DCDCD44444444444444FF
20150010014136205199123520319760000000000000051
-----------------------------------------------
 


Si os fijáis, de la posición 36 a la 51 tenemos un campo con diferente número de espacios a la izquierda del dato que nos interesa.

lunes, 11 de julio de 2016

Calcular pistas (TRK) y cilindros (CYL)

Este es un artículo enviado por la compañera SonAle Lg que habréis visto comentar en el blog alguna vez.
Esperamos verla publicando a menudo a partir de ahora :-)
 
Muchas veces nos preguntamos como coboleros, ¿Cómo especificar el tamaño que tendrá un archivo, dependiendo de la cantidad de datos a procesar?
Primero, nótese que ocupamos el concepto de "posiciones" lo cual para nosotros es un equivalente a "bytes".
Segunda, te mostraremos donde se especifica lo del tamaño que se va a calcular, dentro del JCL como se muestra a continuación en este ejemplo:

//******************************************************
//******************** BORRADO *************************
//BORRADO EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
  DEL FICHERO.DE.SALIDA
  SET MAXCC = 0
//******************************************************
//*********** EJECUCION DEL PROGRAMA PRUEBA3 ***********
//P001 EXEC PGM=PRUEBA7
//SYSOUT DD SYSOUT=*
//ENTRADA DD DSN=FICHERO.DE.ENTRADA,DISP=SHR
//SALIDA DD DSN=FICHERO.DE.SALIDA,
//      DISP=(NEW,CATLG,DELETE),SPACE=(TRK,(50,10)),
//      DCB=(RECFM=FB,LRECL=107,BLKSIZE=0)
/*

Sin más preámbulos, comencemos. Primeramente que nada tendremos que guiarnos por lo siguiente:
1 Track = 48 KB
1 Cylinder = 720 KB
1 Cylinder = 15 Tracks

miércoles, 22 de junio de 2016

Sort vol.2.3: OUTREC. Ficheros VB

Para aquellos que trabajéis con ficheros de longitud variable VB os traigo un ejemplo de como hacer un OUTREC.

Hay que tener en cuenta que en los ficheros de longitud variable las 4 primeras posiciones contienen la longitud de cada registro.
Así como a la hora de contar posiciones para posicionarnos en un campo empezamos por la 5, al hacer el outrec la información de las 4 primeras posiciones también hay que llevársela al fichero de salida.

Por otro lado, en un fichero VB habrá registros que no lleguen a ocupar la longitud máxima, por lo que si no indicamos qué hacer, el SORT dará error al no saber cómo rellenar o ignorar esas posiciones.

En el manual de DFSORT de IBM nos indican como solucionar los casos en que tenemos registros con diferentes longitudes (es decir, no todos los registros del fichero tienen la longitud máxima):
"If a variable-length record was too short to contain all INREC, OUTREC, or OUTFIL fields, use an INREC or OUTREC statement with operands OVERLAY or IFTHEN as appropriate, or an OUTFIL statement with operands OVERLAY, IFTHEN, or BUILD and VLFILL=C 'x' or VLFILL=X 'yy' as appropriate, to prevent DFSORT from terminating"

En nuestro ejemplo vamos a usar un OUTREC con OVERLAY.