Sie sind auf Seite 1von 37

CICS

Customer
Information
Control
System

1
11/11/2014

OLTP (on-line transaction procesing)


SISTEMA OPERATIVO

CICS

USUARIO

Pg: 2

PROGRAMAS

FICHEROS
Y BASES
DE DATOS

11/11/2014

Mdulos del CICS


KC

SC

Control de Tareas

Control de Memoria

PC

TC

Control de Programas

Control de terminales

FC

TD

Control de Ficheros

Control datos transitorios

TS
Control memoria
temporal

Pg: 3

BMS, IC, DC

11/11/2014

Tablas del CICS


TCT

PCT

Terminales

Transacciones->Programas

PPT

FCT

Programas

Ficheros

DCT
Fichero datos transitorios

Pg: 4

11/11/2014

Conversacin

Conversacional:
1.
2.
3.
4.
5.

No conversacional:

Pg: 5

Visualizar pantalla
Esperar respuesta
Recibir respuesta
Actualizar fichero
Visualizar un mensaje de O.K.
Se realiza la tarea y el programa desaparece
11/11/2014

Pseudoconversacional

Transaccin 1:
1. Visualizar pantalla

Transaccin 2:
3. Recibir respuesta
4. Actualizar fichero
5. Visualizar un mensaje de O.K.

Pg: 6

11/11/2014

Funcionamiento del CICS


TC

PC
Librera
2

ACCT

Pg: 7

11/11/2014

Funcionamiento del CICS


Librera

BMS

PC
3

Men
PROGRAMA
ACCT00
5

Pg: 8

11/11/2014

Funcionamiento del CICS


Librera

BMS

PC

FC

Seleccin
Fichero
6
8

Pg: 9

PROGRAMA
ACCT01
7

11/11/2014

Proceso de compilacin
Fuente

Informe
Traductor
Traductor
Informe
Compilador

Fuente
traducido

Objeto

Compilador

Informe
Linkeditor

Linkeditor
Load

Pg: 10

11/11/2014

Restricciones programas CICS

No se pude utilizar:

La INPUT-OUTPUT SECTION dentro de la


ENVIRONMENT DIVISION
La FILE SECTION dentro de la DATA DIVISION
Los verbos:

Pg: 11

READ
WRITE
OPEN
CLOSE
ACCEPT
DISPLAY
TRACE
SORT
Etc.
11/11/2014

Formato comandos CICS


EXEC CICS
RECEIVE MAP(A)
END-EXEC

Caracteres no
imprimibles

MOVE
TO DFHEIV0
MOVE A TO DFHC0070
CALL DFHEI1 USING DFHEIV0 DFHC0070

El traductor se encarga
de definir las variables
necesarias en nuestro
programa

Pg: 12

11/11/2014

Ficheros soportados

DAM (Direct Access Method)

VSAM (Virtual Storage Access Method)


KSDS

(Key Sequenced Data Set)


ESDS (Entry Sequenced Data Set)
RRDS (Relative Record Data Set)

Pg: 13

11/11/2014

Gestin de errores
EXEC CICS
HANDLE CONDITION
DUPREC(prrafo)
ERROR(prrafo)
END-EXEC
01 C-RESP

PIC S9(8) COMP.

EXEC CICS
RECEIVE MAP(A)
RESP(C-RESP)
END-EXEC
IF C-RESP = DFHRESP(MAPFAIL) ...
Pg: 14

11/11/2014

Transferencia de control

Va CALL

Va LINK

Equivale a un GOTO. El programa llamador se descarga


de la memoria y se ejecuta el programa llamado

Va RETURN (opcin TRANSID)

Pg: 15

Equivale a una PERFORM. El programa llamado se


ejecuta y al terminar se devuelve el control a la siguiente
instruccin

Va XCTL

Tal y como se haca en los programas batch

Slo puede emitir un RETURN con opcin TRANSID un


programa que devuelve control al CICS
11/11/2014

LINK
EXEC CICS
LINK
PROGRAM(nombre)
[COMMAREA(identificador)]
[LENGTH(identificador)]
END-EXEC

Pg: 16

11/11/2014

XCTL
EXEC CICS
XCTL
PROGRAM(nombre)
[COMMAREA(identificador)]
[LENGTH(identificador)]
END-EXEC

Pg: 17

11/11/2014

RETURN
EXEC CICS
RETURN
TRANSID(nombre)
[COMMAREA(identificador)]
[LENGTH(identificador)]
END-EXEC

Pg: 18

11/11/2014

START
EXEC CICS
START
TRANSID(nombre)
[COMMAREA(identificador)]
[LENGTH(identificador)]
[INTERVAL(hhmmss) COMP-3]

END-EXEC

Pg: 19

11/11/2014

RETRIEVE
EXEC CICS
RETRIEVE
[INTO(identificador)]
[LENGTH(identificador)]
END-EXEC

Pg: 20

11/11/2014

Paso de datos

El programa llamador:
Define

la COMMAREA en la WORKINGSTORAGE SECTION con cualquier nombre

El programa llamado:
Recibe los datos en un rea de la LINKAGE
SECTION que debe llamarse
DFHCOMMAREA.
Puede determinar la longitud de este rea a travs
de EIBCALEN

Pg: 21

La COMMAREA se pasa por referencia


11/11/2014

Control de terminales
EXEC CICS
SEND
MAP(nombre)
[MAPSET(nombre)]
[ERASE]
[FREEKB]
END-EXEC
EXEC CICS
RECEIVE
MAP(nombre)
[MAPSET(nombre)]
END-EXEC

Pg: 22

11/11/2014

Lectura de ficheros
EXEC CICS
READ
DATASET(nombre)
INTO(rea-datos)
[LENGTH(long.)]
RIFLD(clave)
[KEYLENGTH(long.) GENERIC]
[GTEQ | EQUAL]
[UPDATE]
END-EXEC

Pg: 23

11/11/2014

Browse de ficheros
EXEC CICS
STARTBR | RESETBR
DATASET(nombre)
RIFLD(clave)
[REQID(nmero)]
[KEYLENGTH(long.) GENERIC]
[GTEQ | EQUAL]
END-EXEC

EXEC CICS
ENDBR
DATASET(nombre)
[REQID(nmero)]
END-EXEC
Pg: 24

11/11/2014

Browse de ficheros
EXEC CICS
READNEXT | READPREV
DATASET(nombre)
INTO(rea-datos)
[LENGTH(long.)]
RIFLD(clave)
[KEYLENGTH(long.)]
[REQID(nmero)]
END-EXEC

Pg: 25

11/11/2014

Escritura de ficheros
EXEC CICS
WRITE
DATASET(nombre)
FROM(rea-datos)
[LENGTH(long.)]
RIFLD(clave)
[KEYLENGTH(long.)]
END-EXEC

EXEC CICS
REWRITE
DATASET(nombre)
FROM(rea-datos)
[LENGTH(long.)]
END-EXEC
Pg: 26

11/11/2014

Borrado/liberacin de registros
EXEC CICS
DELETE
DATASET(nombre)
[RIFLD(clave)]
END-EXEC
EXEC CICS
UNLOCK
DATASET(nombre)
END-EXEC

Pg: 27

11/11/2014

Datos temporales

Datos transitorios
Definidos

previamente
Slo se leen una vez
Permiten el arranque de transacciones
Extraparticin
Intraparticin

Memoria temporal
Borrado

explicito
Acceso secuencial o directo
Memoria o disco
Pg: 28

11/11/2014

Colas TD (Transient Data)


EXEC CICS
WRITEQ TD
QUEUE(nombre)
FROM(rea-datos)
[LENGTH(long.)]
END-EXEC

EXEC CICS
READQ TD
QUEUE(nombre)
INTO(rea-datos)
[LENGTH(long.)]
END-EXEC
EXEC CICS
DELETEQ TD
QUEUE(nombre)
END-EXEC
Pg: 29

11/11/2014

Colas TS (Temporary Storage)


EXEC CICS
WRITEQ TS
QUEUE(nombre)
FROM(rea-datos)
[LENGTH(long.)]
[ITEM(rea-datos) [REWRITE]]
[MAIN | AUXILIARY]
END-EXEC
EXEC CICS
READQ TS
QUEUE(nombre)
INTO(rea-datos)
[LENGTH(long.)]
NUMITEMS(rea-datos)
[ITEM(rea-datos) | NEXT ]
END-EXEC
Pg: 30

11/11/2014

Colas TS (Temporary Storage)


EXEC CICS
DELETEQ TS
QUEUE(nombre)
END-EXEC

Pg: 31

11/11/2014

BMS (Basic Map Support)


Permite la definicin de mapas para la
visualizacin de datos formateados
Tres macros:

define un mapset
DFHMDI: define un mapa
DFHMDF: define un campo
DFHMSD:

Pg: 32

Genera un fichero con la definicin a


incluir en nuestro programa
11/11/2014

Definicin de mapas
MAP DFHMSD TYPE=MAP,MODE=INOUT,LANG=COBOL,CTRL=FREEKB, X
TIOAPFX=YES,STORAGE=AUTO
JK01
TRANS

DFHMDI SIZE=(24,80)

DFHMDF POS=(01,01),ATTRB=(FSET,UNPROT,BRT),
LENGTH=04
DFHMDF POS=(01,30),LENGTH=21,ATTRB=(ASKIP,BRT),
INITIAL=' CAPTURA DE PEDIDOS '
ACTCODE DFHMDF POS=(03,09),
ATTRB=(FSET,UNPROT,IC,BRT),LENGTH=03
HDGKEY2 DFHMDF POS=(04,68),ATTRB=(FSET,NUM,BRT),
PICOUT='Z(7)',JUSTIFY=LEFT
DRKTRAN DFHMDF POS=(03,13),ATTRB=(FSET,ASKIP,DRK),
LENGTH=04
Pg: 33

X
X
X
X

11/11/2014

Transacciones CICS

CEMT:
Master

Terminal Transaction

CECI:
Command

Level Interpreter Transaction

CEBR:
Temporary

CEDF:
Command

Level Execution Diagnostic Tansaction

CEDA:
Resource

Pg: 34

Storage Browse Transaction

Definition on-line
11/11/2014

CEMT
CEMT Inquire

CEMT

Pg: 35

Discard
Inquire
Perform
Set

FIle
PROGram
TDqueue
TErminal
TRAnsaction
TSqueue

ALL
(nombre*)

CEMT Set PRogram nombre NEwcopy

11/11/2014

Ejercicio I
Definir el siguiente mapa:
----+----1----+----2----+----3----+----4----+----5----+
EJ01
MANTENIMIENTO EMPLEADOS
=======================
Accin.....: X (A,B,M,C)
Nmero.....:
Nombre.....:
Apellidos..:
Edad.......:
Ciudad.....:
Autonoma..:

999999
XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
99
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Pg: 36

11/11/2014

Ejercicio I
Realizar el programa EJCICS01 de forma que muestre el mapa anterior:
La primera vez con todos los campos en blanco y desbloqueados.
Se verificar el cdigo de accin, visualizando un mensaje de error, si el cdigo es
errneo.
Si el cdigo seleccionado es A se verificar que se han tecleado todos los campos y que
el nmero de empleado no existe ya en la tabla EMPINFO, si se han pasado las
validaciones se dar de alta en la tabla y se volver a visualizar el mapa con todos los
campos desbloqueados.
Si el cdigo seleccionado es B se verificar que se ha tecleado el nmero de empleado y
que existe en la tabla EMPINFO, si se han pasado las validaciones se eliminar de la
tabla y se volver a visualizar el mapa con todos los campos desbloqueados.
Si el cdigo seleccionado es M se verificar que se han tecleado todos los campos y que
el nmero de empleado existe en la tabla EMPINFO, si se han pasado las validaciones
se modificar en la tabla y se volver a visualizar el mapa con todos los campos
desbloqueados.
Si el cdigo seleccionado es C se verificar que se ha tecleado el nmero de empleado y
que existe en la tabla EMPINFO, si se han pasado las validaciones visualizar el mapa
con los datos de la tabla.

Pg: 37

11/11/2014

Das könnte Ihnen auch gefallen