You are on page 1of 11

TALLER DE COBOL CICS UNIDAD II CONCEPTOS DE PROGRAMACION

Introduccin : Esta unidad le presenta a Ud. la Interfase a Ni e! Co"ando del CICS. La interfase a nivel de Comando simplifica la programacin de aplicaciones en lnea con COBOL. Le permite programar una aplicacin en lnea como si fuera una aplicacin batc . O#$eti os !l terminar esta unidad" Ud. podr#$ Consignar las caractersticas de un programa de aplicacin CICS. %escribir el formato general de los comandos CICS. &roducir un mdulo ob'eto a partir de un programa fuente CICS. Obtener informacin del sistema desde el Blo(ue de Interfase de E'ecucin )EIB*. !tender las condiciones de e+cepcin (ue puedan surgir durante la e'ecucin de un programa de aplicacin.

Interfase a Ni e! $ La Interfase a ,ivel de Comando es una interfase entre sus programas de aplicacin - el De Co"ando CICS. Es una de las me'oras mas importantes (ue provee el CICS a partir de la versin 1... !ntes de eso Ud. deba incluir en sus programas macroinstrucciones de tipo !SSE/BLE0. !dem#s de eso" Ud. deba conocer las direcciones de los blo(ues de control de CICS para obtener de los mismos la informacin (ue necesitaba. %eba Ud. ad(uirir las #reas de almacenamiento de entrada 1 salida. La Interfase a ,ivel de Comando simplifica su tarea de programacin" liber#ndose de estas limitaciones por medio de$ Un procesador simplificado Un grupo de comandos comunes al COBOL.

Los programas -a no necesitan llamar directamente a los varios mdulos de administracin del CICS. En lugar de ello" los pedidos de servicios se e+presan con comandos dirigidos a la Interfase a ,ivel Comando" la (ue a su ve2" asegura la comunicacin con el mdulo pertinente de administracin del CICS. La Interfase a ,ivel Comando elimina la necesidad de aprender la estructura interna - la operacin del CICS. Le permite a Ud. programar una aplicacin en lnea como si programara una aplicacin batc . Caracter%sticas de un Pro&ra"a CICS: Un programa de aplicacin (ue se a de e'ecutar en la particin 1 regin CICS a de ser reentrante. Un programa reentrante es a(u3l (ue no se modifica a si mismo. Si un programa no se modifica a si mismo puede ser compartido concurrentemente. !s" mientras procesa una transaccin" un programa puede atender otra con la misma ID (ue se inicie en otra terminal. La venta'a de un programa reentrante radica en (ue slo es necesario cargar una ve2 el programa de aplicacin" pudiendo luego ser utili2ado por m4ultiples tareas. Empero" solo se comparte la porcin e'ecutable del programa.

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD II CONCEPTOS DE PROGRAMACION

El CICS provee a cada tarea (ue e'ecuta el programa una copia del area de traba'o del programa. Esto se debe al ec o de (ue el contenido del #rea de traba'o variar# entre una tarea - la siguiente. 6odas las #reas ad(uiridas - liberadas din#micamente durante la e'ecucin de una tarea son parte del 7!rea de !lmacenamiento %in#mico8 )%S!* del CICS. !s" la copia del #rea de traba'o de un programa para una tarea se coloca en la %S!. El 'rea de tra#a$o de un programa se define de la siguiente manera$ COBOL$ !rea de 6raba'o

La figura ()* ilustra la iniciacin concurrente de dos transacciones IN+, desde dos terminales. !mbas tareas usan el mismo programa de aplicacin.

60!,S!CCIO, 1 6!0E! 1 6C!

/E/O0I! %E 60!B!=O &0O90!/! /E/O0I! %E 60!B!=O

-i&) (.*/ Area de A!"acena"iento Din'"ico 60!,S!CCIO, 5

!0C;I<OS

6!0E! 5 6C! /E/O0I! %E 60!B!=O

El mdulo de administracin de tareas )6as: Control &rogram* crea la primer tarea para la transaccin 1" (ue pide la e'ecucin de un programa. El #rea de traba'o definida por el programa" se copia - pone a disposicin de la tarea 1. /ientras la tarea 1 usa el arc ivo" se inicia la segunda tarea. Se pone a disposicin de la tarea 5 una copia diferente del #rea de traba'o del programa" pudiendo a ora la tarea 5 e'ecutar el programa.

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD II CONCEPTOS DE PROGRAMACION


aplicacin>.

P: Cu#les son los beneficios de la Interfase a ,ivel de Comando para el programador de R: &ermite al programador de aplicacin codificar como si lo iciera en un entorno de
procesamiento en lotes. !isla al programador de la estructura interna - de los blo(ues de control de CICS.

P: ?ue t3cnica de administracin de almacenamiento utili2a el CICS para permitir (ue


multiples tareas usen al mismo tiempo el mismo programa de aplicacin>.

R: Se crea una copia del 'rea de tra#a$o de! 0ro&ra"a para cada una de las tareas (ue se
use concurrentemente un programa de aplicacin dado. -or"ato de !os Co"andos$ El formato general de un comando CICS es E1ECUTE CICS seguido por el nombre de la funcin re(uerida - posiblemente por una o m#s o0ciones. La palabra E@ECU6E puede abreviarse por E@EC. E@EC CICS funcin E,%AE@EC BBB En todo el taller ver# Ud. muc os e'emplos de comandos CICS. &ara simplificar los e'emplos" 3stos se ilustrar#n sin los delimitadores E,%AE@EC" punto - coma o blanco. opcin )argumento* opcin )argumento* ...

-uncin:

La funcin es una palabra clave (ue describe la operacin re(uerida. &or e'emplo$ 0E!% especifica (ue a de leerse un registro de un arc ivo.

O0cin:

Es una palabra clave (ue describe facilidades disponibles con cada funcin. !lgunas funciones son seguidas por un ar&u"ento entre par3ntesisC otras no. &or e'emplo$ %!6!SE6 ) D /!ES60O E * 0I%FL% )CL!<E* 96E?

Las opciones pueden especificarse en cual(uier orden. El comando completo )salvo el delimitador* es el siguiente$

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD II CONCEPTOS DE PROGRAMACION

E@EC CICS 0E!% %!6!SE6)D/!ES60OE* 0I%FL%)CL!<E* 96E? I,6O)0E9A/!ES60O* %!6!SE6 0I%FL% 96E? Indica (ue el CICS a de leer un arc ivo cu-o nombre se da entre par3ntesis. El nombre del arc ivo es /!ES60O. El nombre del #rea de traba'o (ue contiene la clave o el argumento de bHs(ueda del arc ivo. Identifica el tipo de bHs(ueda. )&or e'. 96E? significa 7 allar la clave (ue sea ma-or (ue o igual a la clave de 0I%FL%8* 6ambien podria ser E?U!L" 90E!6E0" etc

I,6O Identifica al #rea de traba'o en la (ue a de colocarse el registro leido. P: Identifi(ue el delimitador utili2ado para finali2ar un comando CICS.

R:

E,%AE@EC El valor del ar&u"ento puede escribirse de dos maneras$

2a!ores de ar&u"ento:

%e definirse en su programa" el argumento se encierra entre par3ntesis$ I,6O )0E9A/!ES60O* 0IFL% )CL!<E*

Si Ud. est# especificando un valor literal" el argumento se encierra entre par3ntesis apstrofos$ %!6!SE6 )D/!ES60OE*

Un valor de argumento puede ser cual(uiera de los siguientes$ <alorAdatos !reaAdatos <alorApointer 0eferenciaApointer ,ombre 0tulo ;ora )en el formato ;;//SS*

Estos t3rminos se e+plican en la Figura 5.5 Fig. 5.5. <alores de !rgumentos

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD II CONCEPTOS DE PROGRAMACION


%!6! A <!LUE )U,! O /E%I! &!L!B0! BI,!0I!" %E&E,%IE,%O %E L! O&CIO,* %!6! AA !0E!

&UE%E SE0 U, ,O/B0E %E %!6OS O U,! CO,S6!,6E

U, ,O/B0E %E %!6OS 0E&0ESE,6!,%O U,! ES60UC6U0! ,O/B0E %E U,! CEL%! BLL O U, C!/&O ?UE CO,6IE,E EL ,O/B0E %E U,! CEL%! BLL

&OI,6E0 AA <!LUE &OI,6E0 J 0EFE0E,CE ,O/B0E %E U,! CEL%! BLL U, LI6E0!L O U, !0E! %E %!6OS 0E&0ESE,6!,%O U, LI6E0!L )%EBE SE0 %E L! /!@I/! LO,9I6U% %EL LI6E0!L* ,O/B0E %E &!00!FO O %E SECCIO, CO,S6!,6E %ECI/!L E/&!?UE6!%! O ,O/B0E %E %!6OS &IC SK)L* CO/&A. BLL CELL puede ser un t3rmino (ue no le resulte familiar. Las celdas BLL se mencionana en varias unidades - se e+plicar#n m#s adelante. Traductor de Co"andos: !ntes de ser compilado o compaginado" el programa de aplicacin es procesado por un 6raductor de Comandos (ue convierte los comandos CICS a sentencias /O<E C!LL . %urante la e'ecucin del programa estos comandos C!LL )o macro %F;EIC!L* llaman a la rutina de interfase a nivel comando - le transfieren los pertinentes par#metros. La rutina de interfase llama luego al mdulo de administracin CICS (ue se corresponde a la funcin del comando en el programa de aplicacin. La figura 5.. ilustra los pasos (ue an de cumplirse para producir un mdulo de carga en la Bibliteca de Carga o un mdulo de fase en la Biblioteca a Imagen de /emoria.

,!/E

L!BEL

;;//SS

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD II CONCEPTOS DE PROGRAMACION

&0O90!/! %E !&LIC!CIR,

E1EC CICS READ


60!%UC6O0 %E CO/!,%OS

LIS6!%O %EL 60!%UC6O0


&0O90!/! FUE,6E 60!%UCI%O

!SSE/BLE0 O CO/&IL!%O0

Fig. 5... &reparacin %el programa

/O%ULO OB=E6O

LIS6!%O !SSE/BLE0 O %E CO/&IL!CIO,

LI,O E%ICIO,

LIS6!%O %E LI,O E%ICIO,


/O%ULO %E C!09! O F!SE

P: Cu#les son las tres partes de un comando CICS N


AAAAAAAAAAAAAA R: funcin" opciones" argumentos. P: Codifi(ue un comando para leer un registro del arc ivo 7/!S6E08 - col(uelo en un #rea llamada 0EC!0E!. La clave es un campo llamado 0EC0%OEP. AAAAAAAAAAAAAAAA R: E@EC CICS 0E!% %!6!SE6 )7/!S6E08* 0I%FL% )0EC0%OEP* I,6O )0EC!0E!* E,%QE@EC

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD II CONCEPTOS DE PROGRAMACION

B!o3ue de interfase de E$ecucin 4EIB5: !dem#s de los servicios )tales como la lectura de un registro* prestados por los varios mdulos de administracin del CICS" el CICS conserva ciertos datos (ue el programa de aplicacin puede necesitar durante la e'ecucin J datos tales como el nHmero de tarea" la ora - la fec a.. El CICS registra este tipo de datos internos en #reas a las (ue el programa de aplicacin no tiene acceso. Empero el CICS copia los datos en un B!o3ue de Interfase de E$ecucin 4EIB5" (ue se crea en el momento de iniciarse la tarea. ;a- un EIB por tarea. El 6raductor de Comandos inclu-e autom#ticamente una copia del EIB en el programa de aplicacin. El EIB de una tarrea almacena informacin (ue el programa de aplicacin puede recuperar luego utili2ando los nombres de los campos EIB. ;e a(u los nombres - sus contenidos. EIB6I/E EIB%!6E EIB6!SO, EIB60,I% EIB60/I% EIB!I% ;ora en (ue fue arrancada la tarea. Fec a en la (ue fue arrancada la tarea. ,Hmero de tarea asignado por el CICS I% de transaccin. Identificacion de terminal. 6ipo de operacin de entrada re(uerida en la terminal" es decir si oprimi la tecla E,6E0"&F."&F1. EIB&OS, &osicin del cursor en la pantalla en el momento de la entrada. EIBC!LE, Longitud del #rea de comunicacin )CO//!0E!* transferida a un programa de aplicacin llamado por otro programa de aplicacin. CO//!0E! permite la transferencia de datos de un un programa a otro cuando una transaccin provoca la e'ecucin en una sucesin de varios programas. CO//!0E! puede utili2arse tambi3n para transferir datos de una tarea a otra. EIBF, Cdigo (ue representa la funcin re(uerida por el Hltimo comando CICS desde el programa de aplicacin. EIB0CO%E El cdigo de respuesta CICS para el Hltimo comando recibido - procesado. EIB0E?I% Identificador del pedido asignado por el CICS a un pedido de administracin de tiempo. 6E,E0 &0ESE,6E (ue sus programas de aplicacin pueden usar el contenido de los campos EIB" pero no deben nunca modificarlo. Condiciones de E6ce0cin) Una condicin de e+cepcin representa un error u otra situacin anormal (ue se a producido durante la e'ecucin de un comando CICS. &or e'emplo tiene lugar una condicin de e+cepcin cuando en el arc ivo designado no puede allarse un registro pedido. &uede Ud. pensar en otras condiciones de e+cepcin (ue podran producirse durante el acceso a un arc ivo> ?ui2# a-a Ud. citado las siguientes$

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD II CONCEPTOS DE PROGRAMACION


El CICS no reconoce el nombre del arc ivo. El arc ivo no est4a abierto. !gregar un registro cu-a clave -a e+iste en el arc ivo )0egistro duplicado* ,o e+iste la clave especificada.

El programador debe preveer todas las condiciones potenciales de e+cepcin. Con respecto a algunas de ellas" el programador puede proporcionar rutinas para (ue las atienda" en caso de surgir" en cuanto a otras" el programador puede aceptar una condicin preestablecida )default*. El CICS cuenta con un comando llamado ;!,%LE (ue permite al programador especificar una accin a tomar en caso de darse cual(uier situacin anormal. Si el programado no especificara lo (ue debiera acerse )inclu-endo una condicin de comando ;!,%LE*" el CICS se ar# cargo del error a trave2 de una rutina preestablecida (ue resulta en una terminacion anormal de la tarea. E! co"ando 7ANDLE: Este es el formato del comando ;!,%LE$ E@EC CICS ;!,%LE CO,%I6IO, opcin )argument* Opcin )argument* identifi(uemos los t3rminos usados en el formato$

8 O0cin: &alabra clave (ue identifica la condicin de e+cepcin en una sentencia" pueden
especificarse asta 15 condiciones" en cual(uier orden. E'emplo$ %U&0EC Clave %uplicada

,O6F,% 0egistro no allado 8 Ar&u"ento$ ,ombre de la rutina en su programa a la cual el CICS a de dar el control cuando se produce la condicin de e+cepcin especificada. El rtulo se escribe entre par3ntesis inmediatamente despu3s de la condicin. En COBOL" el rtulo es un nombre de p#rrafo en el cual se invoca 7go to depending on8 en ve2 de 7perform8. &or lo tanto " larutina a de volver a bifurcar al programa o terminar la transaccin. Supongamos (ue Ud. desea grabar un nuevo registro - (ue en arc ivo -a a- un registro con la misma clave. ?ui2# (uiera Ud.atender a su manera la condicin de registro duplicado )%U&0EC*" utili2ando una rutina de error (ue a llamado %U&LIC!%O. &ara atender todas las otras condiciones de e+cepcin podria usarse una rutina general E00O0. En ese caso" se escribira el comando ;!,%LE de la siguiente manera$ E@EC CICS ;!,%LE CO,%I6IO, %U&0EC )%U&LIC!%O* E00O0 )O60OAE00O0* E,%AE@EC

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD II CONCEPTOS DE PROGRAMACION


.......... )comando de escritura del CICS )T0I6E %!6!SE6* ........*

6oda ve2 (ue CICS detecte un registro (ue )de acuerdo con la clave* est# -a en el arc ivo" transfiere el control a la rutina %U&LIC!%O. E00O0 permite (ue el control sea transferido a la rutina del programa de aplicacin llamada O60OAE00O0" (ue atiende todas las otras condiciones de error.

Consideraciones El comando ;!,%LE se coloca usualmente al comien2o de so#re Pro&ra"acin: un programa" - las condiciones especificadas en esa sentencia (uedan en vigencia
asta (ue termina la tarea o se detecta otro comando ;!,%LE para 3sa condicin. Ciertas porciones de un programa de aplicacin pueden re(uerir un procesamiento de errores diferente para la misma condicin. En ese caso" Ud. slo necesita escribir otro comando ;!,%LE - colocarlo inmediatamente por delante de la seccin a la (ue corresponde. El segundo comando ;!,%LE rempla2ar# al anterior. Estos algunos puntos (ue an de recordarse con respecto al comando ;!,%LE$ En cual(uier programa se usa una rutina de e+cepcin para cual(uier situacin (ue provo(ue una condicin de e+cepcin. &or lo tanto" cubra todas las condiciones en su comando ;!,%LE. Codifi(ue el comando una ve2 - col(uelo al comien2o de su programa. El comando ;!,%LE est# activo desde el momento en (ue se detecta asta (ue$ 6ermina la tarea. Se detecta otro comando ;!,%LE para esa condicin. &ara inactivar el ;!,%LE para una condicin" especifi(ue simplemente la condicin en la sentencia ;!,%LE - omita el 7smbolo8.

Fig. 5.G. Condiciones del comando ;!,%LE

1 5 .

E@EC CICS ;!,%LE CO,%I6IO, %U&0EC )%U&LIC!%O* LE,9E00)E00O0ALO,9I6U%* E@EC CICS ;!,%LE CO,%I6IO, LE,9E00 )6OOLO,9*

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD II CONCEPTOS DE PROGRAMACION


E@EC CICS ;!,%LE CO,%I6IO, LE,9E00 La figura 5.G ilustra cuanto sigue$

1U

En el punto 1" durante la primer parte del programa est#n activas las condiciones de registroA duplicado - error de longitud" - continuar#n est#ndolo asta la terminacin del programa si no son reempla2adas. En el punto 5" el programador desea especificar (ue una rutina diferente atienda las condiciones de error de longitudC por lo tanto" se escribe un nuevo comando ;!,%LE en reempla2o de LE,9E00 del ;!,%LE del punto 1. %U&0EC continHa sin modificaciones. En el punto ." se escribe nuevamente el comando ;!,%LE para invalidar el ;!,%LE del punto 5. &uesto (ue la condicin se especifica sin smbolo (ue le siga" a partir de ese momento no se ar#n verificaciones de error de longitud. !dvi3rtase (ue la condicin de registro duplicado especificada en la primer sentencia ;!,%LE sigue estando en vigencia asta la terminacin del programa. %urante la e'ecucin de diferentes funciones re(ueridas por los comandos CICS de su programa de aplicacin puede producirse la misma condicin de e+cepcin. &or e'emplo" sus programas pueden estar re(uiriendo un registro de un arc ivo. &osteriormente" su programa puede (uerer un registro del !lmacenamiento 6emporario. !s" tanto el &rograma !dministracin de !rc ivos )FC&* como el &rograma de !lmacenamiento 6emporal )6S&* podran necesitar la condicin ,O6F,%. &ueden codificarse dos sentencias de condicin ;!,%LE para satisfacer este re(uerimientoC una anter del pedido de arc ivo - otra despu3s del pedido de almacenamiento temporario. Estas dos condiciones pueden codificarse de la siguiente manera$ E@EC CICS ;!,%LE CO,%I6IO, ,O6F,% ),OAES6!* A A &rocesando el arc ivo re(uerido... A E@EC CICS ;!,%LE CO,%I6IO, ,O6F,% )6!/&OCOAES6!* A A &rocesando el storage temporal re(uerido ,OAES6! rutina &rocesa la condicin de registro de arc ivo no encontrado 6!/&OCOAES6! rutina &rocesa la condicion de registro no encontrado en la temporal storage. !lternativamente podra aberse codificado una rutina ,O6F,% (ue probase el campo EIBF, para la Hltima funcin de comando e'ecutada.

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD II CONCEPTOS DE PROGRAMACION

11

0ecuerde (ue en la atencin de condiciones de error puede Ud. recurrir a tres alternativas" individualmente o en conbinacin. Escribir una rutina especial" tal comop %U&0EC o ,O6F,% para atender una condicin especfica. Escribir una rutina general" tal como E00O0" para atender todas o 0arte de las condiciones de e+cepcin. )!dvi3rtase (ue una rutina general a de diferenciar las causas posibles de los errores*. %e'ar (ue el CICS atienda todas las condiciones por accin preAestablecida default )0esulta en un !BE,% )cancelacin* de la tarea*.

En todos los casos" el comando ;!,%LE a de codificarse antes de los comandos cu-as condiciones de e+cepcin deben ser atendidas por el programa de aplicacin.

P: En dnde el CICS almacena los datos internos (ue el programa de aplicacin puede
acceder>. %3 e'emplos de algunos de los campos disponibles en ese blo(ue. AAAAAAAAAAAAAAAAA R: El CICS almacena los datos en el 7Blo(ue de Interfase de E'ecucin8 )EIB*. Entre los campos disponibles se cuentan$ fec a - ora en las (ue la tarea fue arrancada )EIB%!6E*" EIB6I/E*C I% de transaccin )EIB60,I%*C I% de terminal )EIB60/I%*C cdigo de funcin )EIBF,*C posicin del cursor )EIB&OS,*.

P: Codifi(ue un comando CICS para procesar dos clases de condiciones de e+cepcin al


acceder a un arc ivo. 1* Error de longitud de registro (ue se est# le-endo. 5* 6odos los otros errorres (ue podran producirse. .AAAAAAAAAAAA R: E@EC CICS ;!,%LE CO,%I6IO, LE,9E00 )E00O0ALO,9I6U%* E00O0 )O60OSAE00O0ES* Resu"en de !a unidad: En 3sta unidad enos tratado los siguientes temas$ El propsito de la Interfase a ,ivel de Comando. Cmo construir un programa en COBOL (ue use la interfase a ,ivel de Comando. Cmo escribir un comando CICS en general. Cmo e+presar los valores (ue Ud. usa como par#metros en los comandos CICS. Cmo acceder datos de los sistemas dentro del EIB. Cmo atender las condiciones (ue puedan surgir en sus programas de aplicacin.

COBOLCICSMAIL

You might also like