Desarrollando en Cobol y Natural sobre Plataforma Mainframe

jueves, 29 de mayo de 2014

Utilidad IEBGENER para JCL

Continuando con la revisión de las Utilidades JCL estándar de las que disponemos en el sistema operativo ZOS, hoy vamos a revisar la denominada IEBGENER. Este programa resulta de gran utilidad cuando necesitamos operar con ficheros secuenciales (Sequential Data Set).

La utilidad IEBGENER sirve para realizar copias de ficheros secuenciales. Normalmente se emplea para realizar un backup de un fichero secuencial origen, aunque también se puede utilizar para producir un PDS o un PDSE a partir de un Secuencial.



A continuación, podemos ver un ejemplo de cómo se podría emplear la utilidad IEBGENER para tomar un fichero secuencial origen y crear una copia del mismo.

//* PARAMETROS A USAR EN EL PGM: SYSPRINT, SYSIN, SYSUT1, SYSUT2 
//PASO1    EXEC PGM=IEBGENER 
//SYSPRINT DD SYSOUT=*
//SYSUT1   DD DSN=JJ00.FACTURA1.ORIGINAL,DISP=SHR
//SYSUT2   DD DSN=JJ00.FACTURA1.COPIAFAC,
//            DISP=(NEW,CATLG,DELETE),UNIT=SYSDA,
//            SPACE=(TRK,(1,1),RLSE),
//            DCB=(RECFM=FB,LRECL=80,BLKSIZE=0)
//SYSIN    DD DUMMY   DUMMY--->COPIA SYSUT1 EN SYSUT2


Tal y como se puede observar, los parámetros que necesita la utilidad son los siguientes:

1º) Card SYSPRINT: Aquí tenemos que indicar el lugar al que deseamos que se envíen todos los mensajes generados durante el proceso de ejecución. Si ponemos SYSOUT=* entonces dicha información se enviará directamente al SPOOL (a la MSGCLASS indicada en nuestro job).

//SYSPRINT DD SYSOUT=*

2º) Card SYSIN: Son las sentencias de control de entrada para el programa. En este caso, el IEBGENER no lleva parámetros, así que lo ponemos a DUMMY.

//SYSIN    DD DUMMY

3º) Card SYSUT1: Se trata del fichero de origen, es decir, es el fichero secuencial del que vamos a realizar una copia. En el ejemplo es el fichero JJ00.FACTURA1.ORIGINAL.

//SYSUT1   DD DSN=JJ00.FACTURA1.ORIGINAL,DISP=SHR

4º) Card SYSUT2: Es el fichero de salida, es decir, el fichero copia del que hemos indicado en la card SYSUT1. En el ejemplo, el fichero se denominará JJ00.FACTURA1.COPIAFAC. Como vemos, aquí podemos indicar las características que deseamos que tenga nuestro fichero secuencial: DISP, SPACE, UNIT, VOLSER, RECFM, LRECL, BLKSIZE, etc...

//SYSUT2   DD DSN=JJ00.FACTURA1.COPIAFAC,
//            DISP=(NEW,CATLG,DELETE),UNIT=SYSDA,
//            SPACE=(TRK,(1,1),RLSE),
//            DCB=(RECFM=FB,LRECL=80,BLKSIZE=0)


Una vez provisionados estos 4 parámetros, podríamos ejecutar nuestro JCL sin peligro ya que la ejecución del paso IEBGENER no debería darnos ningún problema. En el caso del ejemplo, nuestro JCL tomó el fichero secuencial JJ00.FACTURA1.ORIGINAL y realizó una copia con nombre JJ00.FACTURA1.COPIAFAC.

En líneas generales (aunque no siempre tiene por qué ser así), emplearemos la utilidad IEBGENER para operar con ficheros secuenciales y la utilidad IEBCOPY para la operativa con miembros particionados (PDS y PDSE). Esto nos facilitará mucho las cosas a la hora de elaborar nuestros JCL.

Y nada más. Como siempre, si os queda alguna duda al respecto de lo indicado sobre IEBGENER no dudéis en preguntárnoslo. Intentaremos resolverla en la medida de nuestras posibilidades.

Saludos.

4 comentarios:

Related Posts Plugin for WordPress, Blogger...