curso de cics - demo

19
Nivelación COBOL/CICS Nivelación COBOL/CICS INTRODUCCION AL CICS - 1 CICS Customer Information Control System INTRODUCCION AL CICS - TEMARIO CONCEPTOS Y FACILIDADES CONCEPTOS 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 COBOL PREPARACION 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 – BMS GENERACION DE MAPAS – BMS Codificacion del Fuente BMS Proceso de Compilación Alta del MAPA en el CICS NEW COPY

Upload: ramiro-gonzalez

Post on 04-Jul-2015

668 views

Category:

Education


5 download

DESCRIPTION

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.

TRANSCRIPT

Nivelación COBOL/CICSNivelación COBOL/CICS

INTRODUCCION AL CICS - 1

CICSCustomer 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

Nivelación COBOL/CICSNivelación COBOL/CICS

INTRODUCCION AL CICS - 2

CICSCustomer 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

Nivelación COBOL/CICSNivelación COBOL/CICS

INTRODUCCION AL CICS - 3

CICSCustomer Information Control

System INTRODUCCION AL CICS - TEMARIO

• UNIDAD LOGICA DE TRABAJO UNIDAD LOGICA DE TRABAJO – CONCEPTOS– SYNCPOINT– SYNCPOINT ROLLBACK– ABEND

• DEMOSTRACION DE CEDF DEMOSTRACION DE CEDF • DEMOSTRACION DE CEMT CECI CEDA DEMOSTRACION DE CEMT CECI CEDA

Nivelación COBOL/CICSNivelación COBOL/CICS

INTRODUCCION AL CICS - 4

CICSCustomer 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

Nivelación COBOL/CICSNivelación COBOL/CICS

INTRODUCCION AL CICS - 5

CICSCustomer 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.

Nivelación COBOL/CICSNivelación COBOL/CICS

INTRODUCCION AL CICS - 6

CICSCustomer 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.

XTAR01UXTAR01UDMP1.NO.TARIFASDMP1.NO.TARIFAS

OPE ENA REA UPD ADD BRO DELOPE ENA REA UPD ADD BRO DEL

Nivelación COBOL/CICSNivelación COBOL/CICS

INTRODUCCION AL CICS - 7

CICSCustomer 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

Nivelación COBOL/CICSNivelación COBOL/CICS

INTRODUCCION AL CICS - 8

CICSCustomer 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

DACLI01DACLI01PROCEDUREPROCEDURE

WORKINGWORKINGTERM %001TERM %001

WORKINGWORKINGTERM %154TERM %154

Nivelación COBOL/CICSNivelación COBOL/CICS

INTRODUCCION AL CICS - 9

CICSCustomer 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

DACLI01DACLI01PROGRAMAPROGRAMA

MACLI01MACLI01MAPAMAPA

PROGRAMASPROGRAMAS DIRECCION DEL DIRECCION DEL EJECUTABLEEJECUTABLE

DACLI01DACLI01MODULOMODULO

EJECUTABLEEJECUTABLE

MACLI01MACLI01MODULOMODULO

EJECUTABLEEJECUTABLE

Nivelación COBOL/CICSNivelación COBOL/CICS

INTRODUCCION AL CICS - 10

CICSCustomer Information Control

System ESTRUCTURA DEL CICS

Los System Programmer de CICS son los encargados del mantenimiento de estas Los System Programmer de CICS son los encargados del mantenimiento de estas tablas de relaciones entre transacciones/programas/archivos y direcciones de tablas 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.

ARCHIVOSARCHIVOSDATABASESDATABASES

LIBRERÍA DELIBRERÍA DE PROGRAMASPROGRAMAS

TerminalControl

Progrmam

TaskControl

ProgramControl

FileControl

File Control TableFTC

ProcProgram TablePPT

AplicationProgram

CICSCICS

REGIONREGION

CICSCICS

REGIONREGIONTERMINAL

Term Control TableTCT

Prog Control TablePCT

Nivelación COBOL/CICSNivelación COBOL/CICS

INTRODUCCION AL CICS - 11

CICSCustomer Information Control

System

Este metodo de programación bajo el CICS no es el recomendable, ya que los Este 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

EnviarMapa

RecibirMapa

GrabarArchivos

ValidarMapa

ARCHIVOSARCHIVOSDATABASESDATABASES

bien

mal

Nuestra aplicación Nuestra aplicación queda a la espera queda a la espera que el operador que el operador

pulse ENTER / PF / pulse ENTER / PF / ATENCION para ATENCION para recibir el MAPArecibir el MAPA

RETURN

Nivelación COBOL/CICSNivelación COBOL/CICS

INTRODUCCION AL CICS - 12

CICSCustomer Information Control

System

Este metodo de programación bajo el CICS es el más recomendable, ya que los Este 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 no recursos 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

EnviarMapa

RecibirMapa

GrabarArchivos

Validarciclo

ARCHIVOSARCHIVOSDATABASESDATABASES

bienmalEstablecer ciclo 1

RETURN

ValidarMapa

EnviarMapa

Protegido

Establecer ciclo 2

RETURN

A

A

RecibirMapa

A

Ciclo 0Ciclo 0

Ciclo 1Ciclo 1

Ciclo 2Ciclo 2

Nivelación COBOL/CICSNivelación COBOL/CICS

INTRODUCCION AL CICS - 13

CICSCustomer Information Control

System

La ejecucion de un programa se inicia con el ingreso de una transaccion (por el La 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, lo operador 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 y busca 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 de espera 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

ActualizarArchivos

ARCHIVOSARCHIVOSDATABASESDATABASES

RETURN

EnviarRecibirMapa

DCLI01 (ACLI)

ACLI CICS

Generar reporte

Start APR1

SENDTEXT

RETURN

LEERTS

DCLIPR (APR1)

TS

TransaccionASINCRONICA

Nivelación COBOL/CICSNivelación COBOL/CICS

INTRODUCCION AL CICS - 14

CICSCustomer 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

Nivelación COBOL/CICSNivelación COBOL/CICS

INTRODUCCION AL CICS - 15

CICSCustomer Information Control

System ESTRUCTURA DE COMANDOS CICS

Dentro la PROCEDURE DIVISION de un programa COBOL ON-LINE, las Dentro 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 al CICS 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.

Nivelación COBOL/CICSNivelación COBOL/CICS

INTRODUCCION AL CICS - 16

CICSCustomer Information Control

System ESTRUCTURA DE COMANDOS CICS

El formato en lineas generales de un comando CICS es EXECUTE CICS (o El 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 o EXEC 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 para Describe cualquiera de las tantas facilidades opcionales disponibles para cada funcion requerida. Algunas opciones pueden estar seguidas por un argumento cada funcion requerida. Algunas opciones pueden estar seguidas por un argumento el que va entre parentesis. El orden de los argumentos no es condicionante de error el 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 un Un “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 un argumento que envia datos al CICS se denomina “data-value”, mientras que un argumento que espera recibir datos del CICS se denomina “data-area”. Algunos argumento que espera recibir datos del CICS se denomina “data-area”. Algunos argumentos descriptos en un comando como “data-area” pueden cumplir ambas argumentos descriptos en un comando como “data-area” pueden cumplir ambas caracteísticas (tal el caso de LENGTH). En tal situación, deberemos asegurarnos que caracteí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 argumento la “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 una hace 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’).

Nivelación COBOL/CICSNivelación COBOL/CICS

INTRODUCCION AL CICS - 17

CICSCustomer 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 las podrán ser reemplazados por cualquiera de las siguientes opciones siempre que su contenido este acorde al tipo de dato esperado siguientes opciones siempre que su contenido este acorde al tipo de dato esperado por el comando y podran ser, por ejemplo, correspondientes a alguna de las por 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 el nombre 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ón un 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 hora literal numérico o área de datos PIC S9(7) PACKED, que contiene la hora expresada en +0hhmmss.expresada en +0hhmmss.

Nivelación COBOL/CICSNivelación COBOL/CICS

INTRODUCCION AL CICS - 18

CICSCustomer 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

Nivelación COBOL/CICSNivelación COBOL/CICS

INTRODUCCION AL CICS - 19

CICSCustomer 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:

[email protected]