viernes, 12 de julio de 2013

Generación de Fichero de Salida en JCL

Para crear un fichero de salida en un paso de JCL, hemos de emplear una sentencia DD. El nombre asociado a la DD en el JCL debe coincidir con el nombre de fichero lógico definido en el comando SELECT del programa Cobol.

//SALJCL1  DD DSN=JJ00.JJ0002CL.SALIDA1,         
//            DISP=(NEW,CATLG,DELETE),           
//            SPACE=(TRK,(10,5),RLSE),           
//            UNIT=SYSDA,VOL=SER=ZARES1,         
//            DCB=(RECFM=FB,LRECL=80,BLKSIZE=27920)


En el ejemplo, SALJCL1 será también el nombre del fichero lógico en el programa Cobol. Estos son los parámetros principales del paso:

1) DSN: Nombre físico del fichero.

//SALJCL1  DD DSN=JJ00.JJ0002CL.SALIDA1,    

2) DISP: Sirve para indicar el estado inicial del fichero y el estado en el que queremos que quede una vez finalizado el proceso. Tiene 3 parámetros.

DISP=(Inicio,Final,Error)

//            DISP=(NEW,CATLG,DELETE),      

   Parámetro 1: es el estado inicial del fichero.
  • NEW: no existe y se crea en el paso.
  • OLD: existe y se debe utilizar de forma exclusiva.
  • SHR: existe y se puede compartir.
  • MOD: si el fichero ya existe, no se puede compartir, y se posiciona tras el último registro existente en el fichero.
    • Si el fichero no existe, equivale al estado NEW.
    • Si no se codifica, se asume por defecto NEW.
   Parámetro 2: estado del fichero tras una correcta ejecución del paso.

   Parámetro 3: estado en que queda el fichero si el paso se ejecuta de forma incorrecta (ABEND).
  • DELETE: el fichero se borra, incluso del catálogo.
  • KEEP: el fichero se guarda al terminar el paso. Sin embargo, no guarda información de fichero (UNIT, VOL...) para pasos posteriores, habría que volver a codificarlas al usar el fichero.
  • CATLG: el fichero se guarda y se cataloga.
  • UNCATLG: el fichero se guarda, pero se elimina del catálogo. 




3) VOL: volumen en el que se almacenará el fichero de salida, si se ha creado en el paso.

//            UNIT=SYSDA,VOL=SER=ZARES1,   

4) UNIT: se utiliza para indicar al sistema que sitúe el fichero en un dispositivo específico (disco, cinta).

5) SPACE: para indicar el espacio que requerirá un nuevo fichero. Consta de 4 parámetros.

SPACE=(Unidad,(Cantidad1,Cantidad2),Release) 

//            SPACE=(TRK,(10,5),RLSE),     
  • Unidad en las que se mide el espacio (pistas (TRK), cilindros (CYL)).
  • Cantidad de espacio a asignar:
    • Extensión primaria: espacio que se reservará para el fichero en el momento de crearlo.
    • Extensión secundaria: cantidad de espacio que se añade cada vez que el fichero se quede pequeño.
  • RLSE: indica que el espacio no utilizado en la creación del fichero, se liberará al cerrarlo

6) RECFM: Formato de los registros del fichero.

//            DCB=(RECFM=FB,LRECL=80,BLKSIZE=27920)

7) LRECL: Longitud de los registros del fichero.

8) BLKSIZE: Tamaño de los bloques del fichero.

Saludos.

2 comentarios:

  1. ¿Cuales son las ventajas de poner el parámetro LRECL par aun fichero de salida? Pq. sin él también funciona y la longitud la define el programa cobol que genera ese fichero de salida... gracias

    ResponderEliminar
  2. Es necesario par definir la longitud de registro cuando trabajas con utilitarios como el sort, iceman, idcams, etc.
    Saludos

    ResponderEliminar