Desarrollando en Cobol y Natural sobre Plataforma Mainframe

viernes, 20 de diciembre de 2013

Procedimiento DFHYITVL para compilación de CICS

Cuando necesitemos compilar un programa Cobol con transacciones CICS, siempre podremos recurrir al procedimiento estándar DFHYITVL en vez de crearnos nuestro propio JCL de compilación. De esta forma nos ahorraremos todo el trabajo requerido para la generación del módulo del objeto Cobol CICS.

El procedimiento estándar DFHYITVL es un proceso que incluye la compilación del objeto Cobol CICS y su posterior paso de linkedit para generar el módulo asociado. Asimismo, incluye la invocación a un precompilador que procederá a traducir todas las sentencias CICS incluidas en nuestro programa.



El contenido de DFHYITVL es el siguiente:

//DFHYITVL PROC SUFFIX=1$,    Suffix for translator module
//       INDEX='DFH320.CICS', Qualifier for CICS libraries
//       PROGLIB='DFH320.CICS.SDFHLOAD',   Name of o/p library
//       DSCTLIB='DFH320.CICS.SDFHCOB',    Private macro/dsect
//       AD370HLQ='IGY410',   Qualifier for AD/Cycle compiler
//       LE370HLQ='CEE',      Qualifier for LE/370 libraries

//       OUTC=A,                     Class for print output
//       REG=4M,                     Region size for all steps
//       LNKPARM='LIST,XREF',        Link edit parameters
//       STUB='DFHEILID',            Lked INC. for DFHELII

//       LIB='SDFHSAMP',             Library
//       WORK=SYSDA                  Unit for work datasets

//TRN    EXEC PGM=DFHECP&SUFFIX,
//            PARM='COBOL2',                              @01C

//            REGION=&REG                      
//STEPLIB  DD DSN=&INDEX..SDFHLOAD,DISP=SHR
//SYSPRINT DD SYSOUT=&OUTC              
//SYSPUNCH DD DSN=&&SYSCIN,
//            DISP=(,PASS),UNIT=&WORK,

//            DCB=BLKSIZE=400,
//            SPACE=(400,(400,100))
//*

//COB    EXEC PGM=IGYCRCTL,REGION=&REG,
//       PARM='NODYNAM,LIB,OBJECT,RENT,RES,APOST,MAP,XREF'
//STEPLIB  DD DSN=&AD370HLQ..SIGYCOMP,DISP=SHR
//SYSLIB   DD DSN=&DSCTLIB,DISP=SHR           
//         DD DSN=&INDEX..SDFHCOB,DISP=SHR
//         DD DSN=&INDEX..SDFHMAC,DISP=SHR
//         DD DSN=&INDEX..SDFHSAMP,DISP=SHR
//SYSPRINT DD SYSOUT=&OUTC
//SYSIN    DD DSN=&&SYSCIN,DISP=(OLD,DELETE)
//SYSLIN   DD DSN=&&LOADSET,DISP=(MOD,PASS),
//            UNIT=&WORK,SPACE=(80,(250,100))
//SYSUT1   DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT2   DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT3   DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT4   DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT5   DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT6   DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT7   DD UNIT=&WORK,SPACE=(460,(350,100))
//*
//COPYLINK EXEC PGM=IEBGENER,COND=(7,LT,COB)

//SYSUT1   DD DSN=&INDEX..&LIB(&STUB),DISP=SHR
//SYSUT2   DD DSN=&&COPYLINK,DISP=(NEW,PASS),
//            DCB=(LRECL=80,BLKSIZE=400,RECFM=FB),
//            UNIT=&WORK,SPACE=(400,(20,20))
//SYSPRINT DD SYSOUT=&OUTC
//SYSIN    DD DUMMY
//*
//LKED   EXEC PGM=IEWL,REGION=&REG,
//            PARM='&LNKPARM',COND=(5,LT,COB)
//SYSLIB   DD DSN=&INDEX..SDFHLOAD,DISP=SHR
//         DD DSN=&LE370HLQ..SCEELKED,DISP=SHR
//SYSLMOD  DD DSN=&PROGLIB,DISP=SHR
//SYSUT1   DD UNIT=&WORK,DCB=BLKSIZE=1024,
//            SPACE=(1024,(200,20))
//SYSPRINT DD SYSOUT=&OUTC
//SYSLIN   DD DSN=&&COPYLINK,DISP=(OLD,DELETE)
//         DD DSN=&&LOADSET,DISP=(OLD,DELETE)
//         DD DDNAME=SYSIN
                                           

Como vemos, el procedimiento se divide en 4 pasos:

1º)  Traducción CICS: se ejecuta el precompilador CICS denominado DFHECP1$, que procederá a traducir las sentencias CICS que hayamos incluido en nuestro programa Cobol.

2º) Compilador Cobol: realiza la compilación estándar del objeto Cobol. Se trata del proceso IGYCRCTL que se usa para cualquier programa.

3º) Copiar DFHEILID: Crea una copia del objeto DFHEILID, de la librería DFH320.CICS.SDFHSAMP, para que sea usada por el paso de Linkedit.

4º) Linkedition: Se realiza el paso de linkedit del objeto Cobol y se genera la salida en el la librería indicada. En nuestra instalación, se trata de la librería DFH320.CICS.SDFHLOAD.

Con estos 4 pasos, el procedure realiza la compilación completa del programa Cobol que tiene incorporadas las sentencias CICS. Para incluir esta utilidad en nuestra propia compilación únicamente tendremos que incorporar la ejecución de este procedimiento en nuestro JCL.

Finalmente recordar que las librerías incluidas en el DFHYITVL podrían variar un poco en vuestro equipo, dependiendo de la instalación del CICS.


Saludos.

1 comentario:

Related Posts Plugin for WordPress, Blogger...