Demo de Curso de CICS orientado a programadores que quieran desarrollar aplicativos para grandes empresas con abundante manejo de información tales como bancos, financieras, telefonicas, seguros, aerolineas.
1. Nivelación COBOL/CICSNivelación COBOL/CICS
INTRODUCCION AL CICS - 1
CICS
Customer Information Control
System INTRODUCCION AL CICS - TEMARIO
• CONCEPTOS Y FACILIDADESCONCEPTOS Y FACILIDADES
– Estructura del CICS; apreciación global de los componentes y Tablas de recursos
– Concepto de Programacion conversacional y Pseudo Conversacional
– El ciclo de un programa Bajo CICS
• PREPARACION DE UN PROGRAMA COBOLPREPARACION DE UN PROGRAMA COBOL
– Estructura de Comandos de CICS dentro de un programa
– Codificación del programa fuente
– Proceso de Compilación
– Alta del Programa en el CICS
– Alta de la Transacción en el CICS
– NEW COPY
• GENERACION DE MAPAS – BMSGENERACION DE MAPAS – BMS
– Codificacion del Fuente BMS
– Proceso de Compilación
– Alta del MAPA en el CICS
– NEW COPY
2. Nivelación COBOL/CICSNivelación COBOL/CICS
INTRODUCCION AL CICS - 2
CICS
Customer Information Control
System INTRODUCCION AL CICS - TEMARIO
• CONTROL DE PROGRAMASCONTROL DE PROGRAMAS
– COMMAREA
– LINK
– XCTL
– RETURN
– START/RETRIEVE
– EIB - EXEC INTERFASE BLOCK
• MANEJO DE ERRORES DEL PROGRAMAMANEJO DE ERRORES DEL PROGRAMA
– Testeo de Condiciones de Excepción en la ejecución de Comandos CICS
– HANDLE CONDITION
– RESP
– HANDLE AID
• COMANDOS PARA ACCESO A DATOSCOMANDOS PARA ACCESO A DATOS
– Obtencion de fecha
– Comandos para manejo de Mapas
– Acceso a Archivos VSAM
– Acceso a TS Temporary Storage
– Acceso a TD Transient Data
3. Nivelación COBOL/CICSNivelación COBOL/CICS
INTRODUCCION AL CICS - 3
CICS
Customer Information Control
System INTRODUCCION AL CICS - TEMARIO
• UNIDAD LOGICA DE TRABAJOUNIDAD LOGICA DE TRABAJO
– CONCEPTOS
– SYNCPOINT
– SYNCPOINT ROLLBACK
– ABEND
• DEMOSTRACION DE CEDFDEMOSTRACION DE CEDF
• DEMOSTRACION DE CEMT CECI CEDADEMOSTRACION DE CEMT CECI CEDA
4. Nivelación COBOL/CICSNivelación COBOL/CICS
INTRODUCCION AL CICS - 4
CICS
Customer Information Control
System CONCEPTOS Y FACILIDADES
• CONCEPTOS Y FACILIDADESCONCEPTOS Y FACILIDADES
– Estructura del CICS; apreciación global de los componentes y Tablas de
recursos
– Concepto de Programacion conversacional y Pseudo Conversacional
– El ciclo de un programa Bajo CICS
5. Nivelación COBOL/CICSNivelación COBOL/CICS
INTRODUCCION AL CICS - 5
CICS
Customer Information Control
System ESTRUCTURA DEL CICS
El CICS es una aplicación que nos permite desarrollar ‘TRANSACCIONES’ ON-Line
en diversos Equipos (Maiframes, PC’s. etc-) y en diversas plataformas (MVS, OS/2, NT, Etc.)
Los componentes básicos para implementar una aplicación de gestión son:
-Programas:Programas: Desarrollados bajo algún lenguaje de programación (COBOL, ASSEMBLER, PL/I,
Etc.) que una vez compilado para CICS se podrá asociar a una Transacción CICS
-Mapas:-Mapas: Son las pantallas que permiten la interacción de la aplicación con el Usuario. Por
medio de estas se le permite el ingreso de datos o efectuar la visualización de un resultado
-Transacciones:Transacciones: Son los nombres con los que el CICS reconoce a nuestras aplicaciones. Los
nombres de las transacciones constan de 4 caracteres y son únicas en cada ambiente de CICS.
Cada transacción puede tener asociado solo un programa.
-Archivos:-Archivos: Las estructuras de archivos que son soportadas por el CICS son VSAM y BDAM,
pero la mejor performance se obtiene con los VSAM.
-Bases de Datos:-Bases de Datos: Existen diveros tipos de Bases de Datos soportadas, DL/I con su estructura
Jerárquica y las Relacionales como el DB2.
-Terminales:-Terminales: Son cualquier dispositivo que pueda conectarse al CICS por medio de un método
de acceso de telecomunicaciones o protocolos. Podemos incluir a Terminales (teclados y
pantallas), Impresoras, y computadoras en general.
6. Nivelación COBOL/CICSNivelación COBOL/CICS
INTRODUCCION AL CICS - 6
CICS
Customer Information Control
System ESTRUCTURA DEL CICS
Para relacionar todos los componenetes basicos de nuestra aplicación, el CICS usa
tablas internas y que a su vez también las utiliza para mantener el control de todos sus recursos
y actividades.
Algunas de las tablas que el CICS utiliza son las siguientes:
-FTC (File Control Table):FTC (File Control Table): Todos los archivos que deban ser accedidos por nuestras
aplicaciones deberán estar declarados con una entrada en esta tabla. La relación consiste en el
nombre del DATASET para el CICS que consta de 8(ocho) caracteres y el nombre real o label
que este posee en el disco.
Otros atributos como la longitud de la clave, la longitud del registro y si es fijo o variable y las
acciones que se pueden efectuar sobre el archivo (lectura, grabación, actualización y delete)
también estan contenidas en esta tabla, como asi tambien un status sobre si el archivo esta
abierto para el CICS y disponible.
XTAR01UXTAR01U
DMP1.NO.TARIFASDMP1.NO.TARIFAS
OPE ENA REA UPD ADD BRO DELOPE ENA REA UPD ADD BRO DEL
7. Nivelación COBOL/CICSNivelación COBOL/CICS
INTRODUCCION AL CICS - 7
CICS
Customer Information Control
System ESTRUCTURA DEL CICS
-TCT (Terminal Control Table):-TCT (Terminal Control Table): Por cada terminal asociada al CICS existe una entrada
(TCTTE) que describe el tipo de dispositivo y su dirección. Contiene también un pointer al Buffer
que fue asignado para esa terminal (TIOA Terminal i/o Area). En la tabla TCTTE el CICS
establece una relación entre la tarea asociada a cada terminal lo que posibilita que ante una
respuesta del usuario sobre una terminal se dispare la transaccion correcta. Esto se lleva a cabo
por un pointer a la TCA Task Control Area y puede leerse desde una aplicación consultando al
EIB que se verá más adelante.
Ter(S205) Tra(CEMT) Pri( 000 ) Pag Ins Ati Tti
Net(IGKS205 ) Acq
ACLIACLI
APR1APR1
TRANSACCIONESTRANSACCIONES TERMINALESTERMINALES
8. Nivelación COBOL/CICSNivelación COBOL/CICS
INTRODUCCION AL CICS - 8
CICS
Customer Information Control
System ESTRUCTURA DEL CICS
-PCT (Program Control Table):-PCT (Program Control Table): Establece la relacion Transaccion/programa. Tiene una
entrada por cada transacción a invocarse en el ambiente de CICS. Al ser solicitada la ejecución
de una transaccion, el CICS automáticamente le asigna un número único de tarea. Esta
administración ejercida por el CICS nos permite que una misma transacción pueda ser invocada
desde una o distintas terminales repetidamente. Las tareas simultaneas compartirán el mismo
código ejecutable, archivos, bases de datos, pero no compartiran las areas de memoria. Una vez
accionada una transacción el CICS busca el programa asociado en la PCT y lo cargará en
memoria si es la primera vez que es invocado (por consulta a la PPT) y lo asociará a la terminal
que corresponda.
TERM %001
TERM %154
ACLIACLI
ACLIACLI
TRANSACCIONESTRANSACCIONES
PROGRAMAPROGRAMA
DACLI01DACLI01
PROCEDUREPROCEDURE
WORKINGWORKING
TERM %001TERM %001
WORKINGWORKING
TERM %154TERM %154
9. Nivelación COBOL/CICSNivelación COBOL/CICS
INTRODUCCION AL CICS - 9
CICS
Customer Information Control
System ESTRUCTURA DEL CICS
-PPT (Processing Program Table):-PPT (Processing Program Table): Tiene una entrada por cada programa y mapa a ser
utilizado. Genera una asociacion programa/ubicación de memoria en que reside y que se
establece con el manejo de pointers .
Si el programa asociado esta ya en memoria, la PPT proporciona su ubicación, de lo contrario, lo
carga previamente.
A diferencia de la PCT en esta tabla tambien se incluyen los programas que no seran invocados
por una transacción (tal el caso de los mapas).
TERM %001 Y TERM %154
TERM %154 Y TERM %001
DACLI01DACLI01
PROGRAMAPROGRAMA
MACLI01MACLI01
MAPAMAPA
PROGRAMASPROGRAMAS
DIRECCION DELDIRECCION DEL
EJECUTABLEEJECUTABLE
DACLI01DACLI01
MODULOMODULO
EJECUTABLEEJECUTABLE
MACLI01MACLI01
MODULOMODULO
EJECUTABLEEJECUTABLE
10. Nivelación COBOL/CICSNivelación COBOL/CICS
INTRODUCCION AL CICS - 10
CICS
Customer Information Control
System ESTRUCTURA DEL CICS
Los System Programmer de CICS son los encargados del mantenimiento de estasLos System Programmer de CICS son los encargados del mantenimiento de estas
tablas de relaciones entre transacciones/programas/archivos y direcciones detablas de relaciones entre transacciones/programas/archivos y direcciones de
memoria de los ejecutables y bufferes de terminales.memoria de los ejecutables y bufferes de terminales.
ARCHIVOSARCHIVOS
DATABASESDATABASES
LIBRERÍA DELIBRERÍA DE
PROGRAMASPROGRAMAS
Terminal
Control
Progrmam
Task
Control
Program
Control
File
Control
File Control Table
FTC
ProcProgram Table
PPT
Aplication
Program
CICSCICS
REGIONREGION
CICSCICS
REGIONREGION
TERMINAL
Term Control Table
TCT
Prog Control Table
PCT
11. Nivelación COBOL/CICSNivelación COBOL/CICS
INTRODUCCION AL CICS - 11
CICS
Customer Information Control
System
Este metodo de programación bajo el CICS no es el recomendable, ya que losEste metodo de programación bajo el CICS no es el recomendable, ya que los
recursos quedan tomados hasta la finalización de la transaccion y su fin es incierto,recursos quedan tomados hasta la finalización de la transaccion y su fin es incierto,
ya que depende en gran medida del tiempo de respuesta del Usuario/Operador.ya que depende en gran medida del tiempo de respuesta del Usuario/Operador.
PROGRAMACION CONVERSACIONAL
Enviar
Mapa
Recibir
Mapa
Grabar
Archivos
Validar
Mapa
ARCHIVOSARCHIVOS
DATABASESDATABASES
bien
mal
Nuestra aplicaciónNuestra aplicación
queda a la esperaqueda a la espera
que el operadorque el operador
pulse ENTER / PF /pulse ENTER / PF /
ATENCION paraATENCION para
recibir el MAPArecibir el MAPA
RETURN
12. Nivelación COBOL/CICSNivelación COBOL/CICS
INTRODUCCION AL CICS - 12
CICS
Customer Information Control
System
Este metodo de programación bajo el CICS es el más recomendable, ya que losEste metodo de programación bajo el CICS es el más recomendable, ya que los
recursos quedan liberados al momento de terminar nuestra transacción y ésta norecursos quedan liberados al momento de terminar nuestra transacción y ésta no
depende del tiempo de respuesta del Usuario/Operador.depende del tiempo de respuesta del Usuario/Operador.
PROG. PSEUDO-CONVERSACIONAL
Enviar
Mapa
Recibir
Mapa
Grabar
Archivos
Validar
ciclo
ARCHIVOSARCHIVOS
DATABASESDATABASES
bienmalEstablecer
ciclo 1
RETURN
Validar
Mapa
Enviar
Mapa
Protegido
Establecer
ciclo 2
RETURN
A
A
Recibir
Mapa
A
Ciclo 0Ciclo 0
Ciclo 1Ciclo 1
Ciclo 2Ciclo 2
13. Nivelación COBOL/CICSNivelación COBOL/CICS
INTRODUCCION AL CICS - 13
CICS
Customer Information Control
System
La ejecucion de un programa se inicia con el ingreso de una transaccion (por elLa ejecucion de un programa se inicia con el ingreso de una transaccion (por el
operador o por otra transaccion), el CICS determina que programa tiene asociada, looperador o por otra transaccion), el CICS determina que programa tiene asociada, lo
busca en la memoria, si no esta cargado lo carga, le entrega el control al programa ybusca en la memoria, si no esta cargado lo carga, le entrega el control al programa y
espera a que este le devuelva el control al CICS o a otro programa, pero el ultimo deespera a que este le devuelva el control al CICS o a otro programa, pero el ultimo de
la cadena le devolverá el control al CICS.la cadena le devolverá el control al CICS.
CICLO DE UN PROGRAMA BAJO CICS
Actualizar
Archivos
ARCHIVOSARCHIVOS
DATABASESDATABASES
RETURN
Enviar
Recibir
Mapa
DCLI01
(ACLI)
ACLI
CICS
Generar
reporte
Start APR1
SEND
TEXT
RETURN
LEER
TS
DCLIPR
(APR1)
TS
Transaccion
ASINCRONICA
14. Nivelación COBOL/CICSNivelación COBOL/CICS
INTRODUCCION AL CICS - 14
CICS
Customer Information Control
System PREPARACION DE UN PROGRAMA COBOL
• PREPARACION DE UN PROGRAMA COBOLPREPARACION DE UN PROGRAMA COBOL
– Estructura de Comandos de CICS dentro de un programa
– Codificación del programa fuente
– Proceso de Compilación
– Alta del Programa en el CICS
– Alta de la Transacción en el CICS
– NEW COPY
15. Nivelación COBOL/CICSNivelación COBOL/CICS
INTRODUCCION AL CICS - 15
CICS
Customer Information Control
System ESTRUCTURA DE COMANDOS CICS
Dentro la PROCEDURE DIVISION de un programa COBOL ON-LINE, lasDentro la PROCEDURE DIVISION de un programa COBOL ON-LINE, las
llamadas a las funciones del CICS deberan tener siempre la siguiente estructura:llamadas a las funciones del CICS deberan tener siempre la siguiente estructura:
EXEC CICSEXEC CICS
......
SINTAXIS: FUNCION, OPCION, ARGUMENTOS Y PARAMETROSSINTAXIS: FUNCION, OPCION, ARGUMENTOS Y PARAMETROS
PROPIOS DEL COMANDO DE CICSPROPIOS DEL COMANDO DE CICS
......
END-EXEC.END-EXEC.
Al Mantener esta estructura, le estamos indicando al ‘TRANSLATOR’Al Mantener esta estructura, le estamos indicando al ‘TRANSLATOR’
(precompilador de comandos de CICS) donde comienza y termina el comando de(precompilador de comandos de CICS) donde comienza y termina el comando de
CICS que deberá traducir y resolver. Luego de convertido el comando, se entrega alCICS que deberá traducir y resolver. Luego de convertido el comando, se entrega al
compilador COBOL un fuente que este comprende.compilador COBOL un fuente que este comprende.
16. Nivelación COBOL/CICSNivelación COBOL/CICS
INTRODUCCION AL CICS - 16
CICS
Customer Information Control
System ESTRUCTURA DE COMANDOS CICS
El formato en lineas generales de un comando CICS es EXECUTE CICS (oEl formato en lineas generales de un comando CICS es EXECUTE CICS (o
EXEC CICS) seguido por el nombre de la funcion requerida, y la posibilidad de una oEXEC CICS) seguido por el nombre de la funcion requerida, y la posibilidad de una o
más opciones, según lo siguiente:más opciones, según lo siguiente:
EXEC CICSEXEC CICS commandcommand optionoption((argarg)....).... END-EXECEND-EXEC. Donde:. Donde:
CommandCommand: Describe la operación requerida (por ejemplo READ).: Describe la operación requerida (por ejemplo READ).
Option:Option: Describe cualquiera de las tantas facilidades opcionales disponibles paraDescribe cualquiera de las tantas facilidades opcionales disponibles para
cada funcion requerida. Algunas opciones pueden estar seguidas por un argumentocada funcion requerida. Algunas opciones pueden estar seguidas por un argumento
el que va entre parentesis. El orden de los argumentos no es condicionante de errorel que va entre parentesis. El orden de los argumentos no es condicionante de error
de sintaxis.de sintaxis.
Arg:Arg: (abreviatura de argumento) es un valor tal como un "data-value" o "name”.(abreviatura de argumento) es un valor tal como un "data-value" o "name”.
Un “data-value” puede ser tanto una variable como una constante. De esta forma unUn “data-value” puede ser tanto una variable como una constante. De esta forma un
argumento que envia datos al CICS se denomina “data-value”, mientras que unargumento que envia datos al CICS se denomina “data-value”, mientras que un
argumento que espera recibir datos del CICS se denomina “data-area”. Algunosargumento que espera recibir datos del CICS se denomina “data-area”. Algunos
argumentos descriptos en un comando como “data-area” pueden cumplir ambasargumentos descriptos en un comando como “data-area” pueden cumplir ambas
caracteísticas (tal el caso de LENGTH). En tal situación, deberemos asegurarnos quecaracteísticas (tal el caso de LENGTH). En tal situación, deberemos asegurarnos que
la “data-area” no se encuentre en una parte protegida de la memoria. Si el argumentola “data-area” no se encuentre en una parte protegida de la memoria. Si el argumento
hace referencia a nombres externos al programa, este deberá estar contenido en unahace referencia a nombres externos al programa, este deberá estar contenido en una
variable de working o codificarlo entre apóstrofos (ws-file) o (‘XCLI01U’).variable de working o codificarlo entre apóstrofos (ws-file) o (‘XCLI01U’).
17. Nivelación COBOL/CICSNivelación COBOL/CICS
INTRODUCCION AL CICS - 17
CICS
Customer Information Control
System ESTRUCTURA DE COMANDOS CICS
Valores posibles para un Arg (argumento) en un programa Cobol:Valores posibles para un Arg (argumento) en un programa Cobol:
““data-value” o “data-area”data-value” o “data-area” podrán ser reemplazados por cualquiera de laspodrán ser reemplazados por cualquiera de las
siguientes opciones siempre que su contenido este acorde al tipo de dato esperadosiguientes opciones siempre que su contenido este acorde al tipo de dato esperado
por el comando y podran ser, por ejemplo, correspondientes a alguna de laspor el comando y podran ser, por ejemplo, correspondientes a alguna de las
siguientes definiciones:siguientes definiciones:
- Halfword binary -- PIC S9(4) COMP- Halfword binary -- PIC S9(4) COMP
- Fullword binary -- PIC S9(8) COMP- Fullword binary -- PIC S9(8) COMP
- Character string -- PIC X(n) where "n" is the number of bytes.- Character string -- PIC X(n) where "n" is the number of bytes.
Donde el tipo de dato no esta estrictamente especificado, la “data-area” bien podráDonde el tipo de dato no esta estrictamente especificado, la “data-area” bien podrá
ser un campo elemental o un item de grupo.ser un campo elemental o un item de grupo.
Ptr-ref (pointer-ref):Ptr-ref (pointer-ref): nombre de una celda BLL (base locator for linkage)nombre de una celda BLL (base locator for linkage)
Ptr-val (pointer-value):Ptr-val (pointer-value): nombre de una celda BLL o un área de datos que contiene elnombre de una celda BLL o un área de datos que contiene el
nombre de la celda BLLnombre de la celda BLL
NameName: literal que referencia nombres externos al programa o un área de datos que: literal que referencia nombres externos al programa o un área de datos que
contenga un literal. Si es literal debe estar entre apóstrofos.contenga un literal. Si es literal debe estar entre apóstrofos.
Label:Label: un nombre de párrafo o de SECTION de COBOL (se efectua una derivaciónun nombre de párrafo o de SECTION de COBOL (se efectua una derivación
de control incondicional).de control incondicional).
Hhmmss:Hhmmss: literal numérico o área de datos PIC S9(7) PACKED, que contiene la horaliteral numérico o área de datos PIC S9(7) PACKED, que contiene la hora
expresada en +0hhmmss.expresada en +0hhmmss.
18. Nivelación COBOL/CICSNivelación COBOL/CICS
INTRODUCCION AL CICS - 18
CICS
Customer Information Control
System ESTRUCTURA DE COMANDOS CICS
Ejemplo de comando READ:Ejemplo de comando READ:
Sintaxis:Sintaxis:
EXEC CICS READEXEC CICS READ
DATASET (‘filename’)DATASET (‘filename’) (‘XCLI01U’) (WS-FILE)(‘XCLI01U’) (WS-FILE)
[UPDATE][UPDATE]
RIDFIELD (data-area)RIDFIELD (data-area) (WS-KEY-CLIENTE)(WS-KEY-CLIENTE)
[KEYLENGTH(data-value)[GENERIC] ][KEYLENGTH(data-value)[GENERIC] ] (WS-LEN-CLAVE)(WS-LEN-CLAVE)
[RBA : RRN][RBA : RRN]
{SET(pointer-ref) : INTO(data-area)}{SET(pointer-ref) : INTO(data-area)} (WS-PTR-REG-CLI) (WS-REG-CLI)(WS-PTR-REG-CLI) (WS-REG-CLI)
[LENGTH(data-area)][LENGTH(data-area)] (WS-LEN-REG-CLI)(WS-LEN-REG-CLI)
[GTEG : EQUAL][GTEG : EQUAL]
END-EXEC.END-EXEC.
WORKING STORAGE SECTION.WORKING STORAGE SECTION.
77 WS-FILE77 WS-FILE PIC X(08) VALUE ‘XCLI01U’.PIC X(08) VALUE ‘XCLI01U’.
77 WS-LEN-CLAVE77 WS-LEN-CLAVE PIC S9(9) COMP.PIC S9(9) COMP.
77 WS-PTR-REG-CLI77 WS-PTR-REG-CLI PIC S9(9) POINTER.PIC S9(9) POINTER.
77 WS-LEN-REG-CLI77 WS-LEN-REG-CLI PIC S9(9) COMP.PIC S9(9) COMP.
01 WS-REG-CLI.01 WS-REG-CLI.
05 WS-KEY-CLIENTE05 WS-KEY-CLIENTE PIC X(19) VALUE ‘ ‘.PIC X(19) VALUE ‘ ‘.
05 WS-RESTO-CLIENTE PIC X(1001) VALUE ‘ ‘.05 WS-RESTO-CLIENTE PIC X(1001) VALUE ‘ ‘.
COMMANDCOMMAND
OPTIONOPTION
ARGARG
19. Nivelación COBOL/CICSNivelación COBOL/CICS
INTRODUCCION AL CICS - 19
CICS
Customer Information Control
System FIN DE LA DEMO
MUCHAS GRACIAS POR SU ATENCION
SI ESTUVIERA INTERESADO EN VER UNA DEMO DE ALGUN OTRO
CURSO DE MAINFRAME POR FAVOR DIRIGIRSE A:
ramiro.gonzalez@rgasolutions.com.ar