Compilación de Programas COBOL con CICS y DB2 en JCL: Ejemplo Práctico con Mapa BMS
Compilación de Programas COBOL con CICS y DB2 en JCL
A continuación se presentan los trabajos JCL necesarios para compilar un programa COBOL que utiliza CICS y DB2, junto con la definición de un mapa BMS (Basic Mapping Support) empleado para la interacción con el usuario en pantalla.
1. Trabajo JCL de Inclusión (GPCA76CS)
Este trabajo realiza el procesamiento de inclusión del programa en CICS. Antes de ejecutarlo, es necesario modificar los siguientes parámetros:
- GPCAP760: reemplazar por su usuario.
- NOMBRE=XXXXXXX: colocar el nombre del programa.
//GPCA76CS JOB TRABAJO MSGCLASS=X,CLASS=C,NOTIFY=GPCA76
//* 00010034
//*
//* Compilar PROGRAMAS PARA JCL CICS
//*
//* Alterar CONFORME SEGUE:
//* GPCAP760 -> TROCAR pelo seu Usuario
//* NOMBRE=XXXXXXX -> COLOQUE O nome do Programa
//*
//JCLLIB ORDER=GP.LB.PROCLIB
//CICSPGM EXEC DFHCICS1,NAME=PSCVINCL,INSTR='GPCA76'
//TRAN.SYSIN DD DSN=GP.GPCA76.COBLIB(GPCAP768),DISP=SHR2. Trabajo JCL de Compilación COBOL, CICS y DB2 (GPCA76CD)
Este trabajo compila el programa COBOL con soporte para CICS y DB2, y ejecuta el proceso de BIND del plan en DB2.
//GPCA76CD JOB TRABAJO CARLOS,MSGCLASS=X,CLASS=C,NOTIFY=GPCA76,TIME=(0,40)
//* Compilação DE TRABAJO DE PROGRAMA COM COBOL CICS DB2
//*
//JCLLIB ORDER=GP.LB.PROCLIB
//MEMBRO//COMPCIDB EXEC DFHCIDB2,NAME='GPCAP764',INSTR='GPCA76'
//BIND.SYSTSIN DD *
DSN SYSTEM(DB2N)
BIND PLAN(GPCAP764) MEMBER(GPCAP764) ACT(REP) ISOLATION(CS) LIB('SYS2.DB2.DBRMLIB.DATA')
END3. Definición del Mapa BMS GPM7651
El mapa GPM7651 define la pantalla de Inclusión de Producto mediante macros BMS: DFHMSD (conjunto de mapas), DFHMDI (mapa) y DFHMDF (campos). Los campos se organizan por líneas y posiciones, e incluyen atributos como ASKIP (protegido), UNPROT (editable), NUM (numérico) y NORM (normal).
GPM7651 DFHMSD TYPE=DSECT,
MODE=INOUT,
LANG=COBOL,
STORAGE=AUTO,
CTRL=(FREEKB,ALARM,FRSET),
TIOAPFX=YES
GPM7651 DFHMDI SIZE=(24,79),
LINE=NEXT,
COLUMN=NEXT
*=== LÍNEA 01 ===
DFHMDF POS=(01,02),LENGTH=07,ATTRB=ASKIP,INITIAL='GPM7651'
DFHMDF POS=(01,19),LENGTH=32,ATTRB=ASKIP,INITIAL='TABELA de Producto S'
DATASIS DFHMDF POS=(01,62),LENGTH=10,ATTRB=(ASKIP,NORM,FSET)
HORASIS DFHMDF POS=(01,75),LENGTH=05,ATTRB=(ASKIP,NORM,FSET)
*=== LÍNEA 02 ===
DFHMDF POS=(02,02),LENGTH=78,ATTRB=ASKIP,
INITIAL='==============================================================================='
*=== LÍNEA 04 ===
DFHMDF POS=(04,30),LENGTH=23,ATTRB=ASKIP,INITIAL='<<< Inclusão >>>'
*=== LÍNEA 05 ===
DFHMDF POS=(05,30),LENGTH=23,ATTRB=ASKIP,INITIAL='======================='
*=== LÍNEA 08 ===
DFHMDF POS=(08,15),LENGTH=22,ATTRB=ASKIP,INITIAL='CODIGO DE PRODUCTO =>'
CODPROD DFHMDF POS=(08,38),LENGTH=06,ATTRB=(UNPROT,NUM,OFFSET,IC)
*=== LÍNEA 09 ===
DFHMDF POS=(09,15),LENGTH=22,ATTRB=ASKIP,INITIAL='======================'
*=== LÍNEA 11 ===
DFHMDF POS=(11,15),LENGTH=22,ATTRB=ASKIP,INITIAL='DESCRICAO =>'
DESCRI DFHMDF POS=(11,38),LENGTH=35,ATTRB=(UNPROT,NORM)
*=== LÍNEA 12 ===
DFHMDF POS=(12,15),LENGTH=22,ATTRB=ASKIP,INITIAL='LOCAL =>'
LOCAL DFHMDF POS=(12,38),LENGTH=06,ATTRB=(UNPROT,NORM)
*=== LÍNEA 13 ===
DFHMDF POS=(13,15),LENGTH=22,ATTRB=ASKIP,INITIAL='CANTIDAD ESTOQUE =>'
QTDEST DFHMDF POS=(13,38),LENGTH=04,ATTRB=(UNPROT,NUM,FSET)
*=== LÍNEA 14 ===
DFHMDF POS=(14,15),LENGTH=22,ATTRB=ASKIP,INITIAL='CANTIDAD MINIMA =>'
QTDMIN DFHMDF POS=(14,38),LENGTH=04,ATTRB=(UNPROT,NUM,FSET)
*=== LÍNEA 15 ===
DFHMDF POS=(15,15),LENGTH=22,ATTRB=ASKIP,INITIAL='CANTIDAD MÁXIMA =>'
QTDMAX DFHMDF POS=(15,38),LENGTH=04,ATTRB=(UNPROT,NUM,FSET)
*=== LÍNEA 16 ===
DFHMDF POS=(16,15),LENGTH=22,ATTRB=ASKIP,INITIAL='VALOR UNITARIO =>'
PRECO DFHMDF POS=(16,38),LENGTH=08,ATTRB=(UNPROT,NUM,FSET)
*=== LÍNEA 17 ===
DFHMDF POS=(17,15),LENGTH=22,ATTRB=ASKIP,INITIAL='======================'
*=== LÍNEA 19 ===
DFHMDF POS=(19,15),LENGTH=22,ATTRB=ASKIP,INITIAL='usuario =>'
USUARIO DFHMDF POS=(19,38),LENGTH=08,ATTRB=(UNPROT,NORM)
*=== LÍNEA 20 ===
DFHMDF POS=(20,15),LENGTH=22,ATTRB=ASKIP,INITIAL='DATA ATUALIZAÇÃO =>'
DTATU DFHMDF POS=(20,38),LENGTH=10,ATTRB=(UNPROT,NORM)
*=== LÍNEA 22 ===
DFHMDF POS=(22,02),LENGTH=78,ATTRB=ASKIP,
INITIAL='==============================================================================='
*=== LÍNEA 23 ===
DFHMDF POS=(23,02),LENGTH=78,ATTRB=ASKIP,
INITIAL='ENTER = Processa | F3 = SAIDA | F4 = MENU | F5 = PESQUISA'
*=== LÍNEA 24 ===
DFHMDF POS=(24,02),LENGTH=07,ATTRB=ASKIP,INITIAL='msg =>'
MENS DFHMDF POS=(24,10),LENGTH=60,ATTRB=(ASKIP,OFFSET,NORM)
GPM7651 DFHMSD TYPE=FINAL
ENDConsideraciones finales
- Verifique que las bibliotecas PROCLIB y COBLIB existan y tengan los permisos adecuados.
- El paso BIND requiere que el módulo DBRM haya sido generado previamente en la biblioteca DBRMLIB.
- Tras la compilación del mapa BMS, recuerde actualizar la tabla de programas de CICS (CSD) cuando sea necesario.