Para terminar (por el momento) nuestro repaso de las utilidades básicas del mundo JCL, hoy vamos a hablar del programa IDCAMS. Se trata de la utilidad por excelencia cuando hablamos del manejo de ficheros VSAM ya que permite, entre otras cosas, la creación, la eliminación o la carga de información de los mismos.
La utilidad IDCAMS se emplea para realizar la operativa sobre los ficheros VSAM. Lo más importante es que nos permite realizar la creación de los mismos. Aunque también se emplea para realizar la eliminación, la carga de datos o incluso la impresión del contenido de los VSAM.
En realidad, aunque en general se emplea para la operativa con VSAM, IDCAMS puede ser empleado también para operar con ficheros Secuenciales, PDS o ISAM. De hecho, nos permitiría realizar, sin problema alguno, la copia de los registros un fichero Secuencial sobre otro fichero Secuencial.
La función a realizar por el programa IDCAMS deberá ser especificada por uno de los siguientes comandos (que deberán incluirse bajo la card SYSIN):
- DEFINE: El comando DEFINE CLUSTER sirve para indicar que IDCAMS debe proceder a la creación del fichero especificado.
- DELETE: El comando DELETE CLUSTER servirá para eliminar el fichero indicado.
- REPRO: Nos permitirá copiar el contenido de un fichero de entrada a otro fichero de salida.
- PRINT: Procederá a imprimir el contenido del fichero especificado.
A continuación, mostramos un ejemplo de cómo se podría emplear la utilidad IDCAMS en un paso JCL de creación de un fichero VSAM de tipo indexado (KSDS).
//****************************************************
//DEFINE EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINE CLUSTER ( NAME (JJ00.FACTURAS.PEND) -
TRACKS (02 00) -
RECORDSIZE (80 80) -
FREESPACE (00 00) -
VOLUMES (E3WK01) -
SHAREOPTIONS (2 3) -
KEYS (6 1) -
UNIQUE -
IMBED ) -
DATA ( NAME (JJ00.FACTURAS.PEND.DATA) ) -
INDEX ( NAME (JJ00.FACTURAS.PEND.INDEX) )
/*
//****************************************************
Como podemos ver, la invocación al programa IDCAMS debe estar acompañada por una serie de declaraciones que son imprescindibles para su correcta ejecución. Son las 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, que deberán ser declaradas justo bajo esta SYSIN. En este
caso, el IDCAMS podrá recibir como entrada alguno de los comandos especificados más arriba: DEFINE, DELETE, REPRO o PRINT.
//SYSIN DD *
El próximo día continuaremos viendo el resto de las declaraciones que
hay que realizar en el paso de nuestro JCL para ejecutar IDCAMS de
forma correcta. Aunque parezcan muchos parámetros, hemos de tener en cuenta que, una vez tengamos almacenado nuestro JCL modelo, únicamente tendremos que cambiar el nombre y un par de cosas más para obtener el mismo resultado una y otra vez.
Eso
es todo por ahora. Os emplazamos a la segunda parte del post para
completar la visión global de la utilidad IDCAMS y, en particular, de su utilización con ficheros VSAM.
Saludos.
si el archivo es multivolumen el idcams lo borra??
ResponderEliminar