Desarrollando en Cobol y Natural sobre Plataforma Mainframe

miércoles, 18 de diciembre de 2013

Compilador de objetos Cobol con CICS

En ocasiones, tendremos necesidad de incluir invocaciones CICS en nuestros programas Cobol (por ejemplo, para el tratamiento de Mapas). En estos casos, no podremos recurrir al compilador estándar de objetos Cobol y tendremos que usar un procedimiento especial que tenga en cuenta las transacciones CICS.

Si incluimos una ejecución CICS en nuestro programa Cobol e intentamos compilar de forma estándar, el compilador nos devolverá un error. Esto es debido a que, en estos casos, tenemos que recurrir al procedimiento de compilación denominado DFHYITVL.



Por ejemplo, supongamos que elaboramos un programa Cobol en el que tenemos una invocación CICS a un Mapa del siguiente modo.

*
     EXEC CICS                      
       SEND MAP('JJ0004M')          
       MAPONLY                      
       ERASE                        
       NOHANDLE                     
     END-EXEC.                      
*                 
                   

En casos como estos tendremos que emplear un compilador que disponga de la ejecución correspondiente del procedure DFHYITVL. Por ejemplo, podría ser el siguiente.

//JJCOM4CL JOB (123),'COMPILADOR CICS',CLASS=A,MSGCLASS=A,
//             MSGLEVEL=(1,1),NOTIFY=&SYSUID
//***************************************************

//* DFHYITVL - COMPILADOR DE OBJETOS COBOL CON CICS
//***************************************************

//JOBPROC  JCLLIB ORDER=DFH320.CICS.SDFHPROC
//CICSCOB  EXEC DFHYITVL,      
//             DSCTLIB=LIBPR.COPYS.JJ00,  *LIBRERIA DE COPYS
//             PROGLIB=LIBPR.MODULOS.JJ01 *LIBRERIA DE MODULOS
//* UBICACION DEL PROGRAMA CON CICS
//TRN.SYSIN  DD DSN=LIBPR.FUENTES.JJ00(JJ0004CO),DISP=SHR
//* LIBRERIAS SYSLIB DE IEWL - DFHELII
//LKED.SYSLIB DD DSN=DFH320.CICS.SDFHLOAD,DISP=SHR           
//            DD DSN=CEE.SCEELKED,DISP=SHR
//            DD DSN=LIBPR.MODULOS.JJ01,DISP=SHR       
//LKED.SYSIN DD  * 
  NAME JJ0004CO(R)                                         

//

Como vemos, este compilador especial se compone de un único paso que invoca directamente al procedimiento DFHYITVL. Dicho procedure se encarga de realizar la compilación de los objetos Cobol que tengan transacciones CICS.

En este paso tenemos que especificar los siguientes datos:

1º) Cláusula JCLLIB: Tenemos que especificar la librería en la que se encuentra el objeto DFHYITVL. Esto variará en cada instalación. En nuestro caso, se trata de la librería DFH320.CICS.SDFHPROC.

//JOBPROC  JCLLIB ORDER=DFH320.CICS.SDFHPROC

2º) Parámetro DSCTLIB: Esta es la librería en la que se encuentran las copys que se van a utilizar en nuestro programa Cobol.

//             DSCTLIB=LIBPR.COPYS.JJ00,  *LIBRERIA DE COPYS

3º) Parámetro PROGLIB: Se trata de la librería en la que será almacenado el módulo generado a partir de nuestro programa Cobol.

//             PROGLIB=LIBPR.MODULOS.JJ01 *LIBRERIA DE MODULOS

4º) Parámetro SYSIN: Aquí especificaremos la librería en la que se encuentra el fuente de nuestro objeto Cobol.

//TRN.SYSIN  DD DSN=LIBPR.FUENTES.JJ00(JJ0004CO),DISP=SHR

5º) Parámetro SYSLIB: aquí habrá que especificar, entre otras cosas, la librería en la que se encuentra el objeto IEWL, uno de los empleados en el procedure DFHYITVL. En nuestro caso, se trata de la librería DFH320.CICS.SDFHLOAD.

//LKED.SYSLIB DD DSN=DFH320.CICS.SDFHLOAD,DISP=SHR           
//            DD DSN=CEE.SCEELKED,DISP=SHR
//            DD DSN=LIBPR.MODULOS.JJ01,DISP=SHR        


6º) Por último, al final del compilador tendremos que incluir la cláusula SYSIN indicada en el ejemplo.

//LKED.SYSIN DD  * 
  NAME JJ0004CO(R)


Si se realiza correctamente, no deberíamos tener ningún problema con la compilación de nuestro objeto. La mayor dificultad de este procedimiento es especificar correctamente las librerías en las que se encuentra cada cosa. Debido a que cada instalación es diferente, tendremos que perder algún tiempo en identificarlas pero, una vez superado ese paso inicial, el proceso no debería darnos ningún quebradero de cabeza adicional.

Pues nada, como siempre, esperamos haberos ayudado un poco a ir profundizando en vuestro conocimiento del entorno Cobol.

Saludos.

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...