Desarrollando en Cobol y Natural sobre Plataforma Mainframe

jueves, 12 de diciembre de 2013

Compilador para Mapas Cobol

Para la compilación de un Mapset (agrupación de Mapas) Cobol no podremos recurrir al compilador estándar de objetos. Esto es debido a que se precisa la intervención de un Ensamblador especial que nada tiene que ver con los procesos empleados para los programas Cobol.

El Ensamblador específico para Mapsets se denomina ASMA90, ubicado en la librería DFH320.CICS.SDFHMAC. Este proceso se encargará de chequear todas las líneas de los Mapas del Mapset  y nos informará si hay algún problema en su estructura.



A continuación, mostramos un ejemplo de cómo quedaría el compilador de Mapsets. Recordad que siempre puede haber alguna pequeña variación de una instalación a otra.

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

//* DFHMAPS - PROCEDIMIENTO COMPILACION DE MAPSET
//* MAPSET  - AGRUPACION DE MAPAS
//***************************************************
//JOBPROC  JCLLIB ORDER=DFH320.CICS.SDFHPROC      
//CICSMAP  EXEC DFHMAPS2,             *COMPILADOR ASMA90
//         OUTC=*,                    *PRINT SYSOUT CLASS
//         DSCTLIB=LIBPR.COPYS.JJ00,  *DESTINO MAPA SIMBOLICO
//         MAPLIB=LIBPR.MODULOS.JJ01, *DESTINO MAPSET FISICO
//         MAPNAME=JJ0004M            *NOMBRE MAPSET DESTINO
//* UBICACION DEL FUENTE DEL MAPSET
//COPY.SYSUT1  DD  DSN=LIBPR.MAPLIB.JJ00(JJ0004M),DISP=SHR

//
//***************************************************
              

Como vemos, para la implementación de este compilador hemos empleado la invocación al procedimiento estándar DFHMAPS. Dicho procedimiento se encarga de realizar la compilación de nuestro Mapset con el ensamblador ASMA90 y de generar el Mapset Físico asociado.

Para que el funcionamiento sea correcto, a DFHMAPS hay que proporcionarle varios parámetros:

1º) Ubicación del DFHMAPS: que, en nuestro caso, es la librería DFH320.CICS.SDFHPROC. Esto puede variar de una instalación a otra.

//JOBPROC  JCLLIB ORDER=DFH320.CICS.SDFHPROC       

2º) Parámetro DSCTLIB: se trata de la ubicación en la que se va a almacenar el Mapset Simbólico generado por nuestra compilación. En nuestro ejemplo, hemos puesto la librería LIBPR.COPYS.JJ00.

//         DSCTLIB=LIBPR.COPYS.JJ00

3º) Parámetro MAPLIB: es la ubicación en la que deseamos que se almacene el Mapset Físico que se va a generar en nuestra compilación. En el ejemplo, se ha indicado la librería LIBPR.MODULOS.JJ01.

//         MAPLIB=LIBPR.MODULOS.JJ01

4º) Parámetro MAPNAME:  es el nombre que deseamos que tengan el Mapset Simbólico y el Mapset Físico generados. En el ejemplo hemos elegido JJ0004M.

//         MAPNAME=JJ0004M

5º) Ubicación del fuente del Mapset: obviamente, tendremos que indicar la librería en la que se encuentra almacenado el fuente de nuestro Mapset. En el ejemplo, nuestro mapa está en la librería LIBPR.MAPLIB.JJ00.

//COPY.SYSUT1  DD  DSN=LIBPR.MAPLIB.JJ00(JJ0004M),DISP=SHR

Mencionar que, si no queremos usar el procedimiento estándar DFHMAPS, lo único que tendríamos que hacer es crearnos nuestro propio JCL e ir incluyendo los pasos que se van ejecutando en aquel procedimiento (pasos COPY, ASMMAP, LINKMAP y ASMDSECT).

Una vez definidos correctamente todos los parámetros precisados, la ejecución de nuestro compilador de Mapas no debería darnos ningún problema.

Saludos.

1 comentario:

  1. Estoy empezando a estudiar cobol cics db2 para mainframe, tendrías más archivos de muestra jcl para cobol cics db2 y map, el zos en el que estoy estudiando es zos 1.10.

    Celso Henrique. celsofigueiredo@gmail.com

    ResponderEliminar

Related Posts Plugin for WordPress, Blogger...