Vous êtes sur la page 1sur 48

MANUAL DE CICS

MANUAL PARA EL CURSO DE CICS:


¿ Que es el CICS ?.
CICS (Customer Information Control System); Es un sistema de manejo de datos
de uso general, que puede funcionar dentro de una red de muchas terminales, de
hecho miles de ellas.

SISTEMA OPERATIVO

DATOS

CICS

DATOS

Fig. 1 el CICS puede manejar muchas terminales. Permite acceso a los datos
Con sus propios recursos.

Desde cierto punto de vista, el CICS podría verse como un sistema operativo
pequeño dentro del Sistema Operativo principal, su función sería la de administrar
los recursos necesarios para el manejo de un ambiente donde se corren programas
de aplicación incluyendo interfaces de archivos y bases de datos. Por ejemplo, el
CICS tiene su propio File Control Program y su propio Terminal Control Program.

Los sistemas operativos, están diseñados para administrar eficientemente los


recursos de una computadora, el CICS ayuda a mantener una clase particular de
programas de aplicación (llamadas aplicaciones on-line), separadas de otras
aplicaciones en el sistema, y por supuesto, a ejecutarlas.

Cierto tipo de aplicaciones denominadas 'BATCH', que generalmente se corren en


un ambiente TSO (Time Sharing Option), leen un archivo, procesan registros
individuales, actualizan una nueva versión del archivo, y producen cierto tipo de
reporte impreso. Al terminar el programa, los archivos se cierran, y los datos se
tornan inaccesibles para cualquier consulta, adicionalmente, los registros en los
archivos, quedan actualizados hasta la ultima ejecución del programa.

A veces, esto no es suficiente. Los usuarios necesitan respuestas rápidas a sus


solicitudes de proceso de información. La espera mientras termina la ejecución de
un programa puede ser inaceptable en algunas aplicaciones que necesitan
respuestas inmediatas. Para esto, se necesita información en línea (on-line
Information), en otras palabras, se necesita un control directo de las bases de
datos, o sea, un sistema DB/DC (Data Base Direct Control).

El usuario final de una aplicación on-line dentro de una red, puede hacer diferentes
clases de operaciones con diferentes archivos (data sets) y observar los resultados

1
MANUAL DE CICS
de su operación en cuestión de segundos, mientras que la operación interna del
sistema DB/DC le pasa inadvertida; esta es la función de CICS.

¿Que hace El CICS?


El CICS proporciona el control de comunicaciones y las funciones de servicio
necesarias para que el usuario pueda crear sus propios sistemas DB/DC. Esto
reduce drásticamente la cantidad total de programación necesaria para crear una
aplicación.

Controla los programas de la aplicación on-line, es decir, el CICS maneja la


interacción entre el usuario de la terminal y los programas de la aplicación. La
interacción consiste de solicitudes del y respuestas al usuario de la terminal
durante una sesión de trabajo.
DATOS 1

PROG
TERM
INAL
1 1

CICS

TERM
PRO
INAL
2
G2 CI

DATOS 2
El CICS proporciona:

• Las funciones solicitadas por los programas de la aplicación para


comunicación con terminales locales, remotas y con los subsistemas.
• Control de concurrencia mientras corren los programas de varios
usuarios.
• Recursos para accesar a las bases de datos y a los archivos, en
conjunción con los diferentes productos y métodos de acceso que
proporciona IBM.
• La habilidad para comunicarse con otros sistemas CICS y sistemas de
Base de Datos, tanto en la computadora local como en los sistemas
remotos.

2
MANUAL DE CICS
Los programas en línea tienen ciertas características y necesidades en común las
principales serian:

• Dar servicio a varios usuarios en línea simultáneamente (aparentemente).


• Solicitar acceso común a los mismos archivos (Data Sets) y a las mismas
Bases de Datos.
• Dar respuesta a cada usuario final en un tiempo razonable.
• Accesar a terminales remotas y sistemas de comunicaciones.

El CICS utiliza sus propios servicios para administrar las necesidades de sus
transacciones, pero no duplica todos los servicios proporcionados por el Sistema
Operativo. Cuando lo considera apropiado, el CICS encarga al OS los servicios
necesarios.

Diferencias entre aplicaciones CICS y aplicaciones


BATCH
Existen ciertas diferencias básicas entre una aplicación BATCH y una aplicación
CICS, y, si bien no todo es diferente, vamos a puntualizar las principales:

En un programa BATCH, generalmente se definen todas las necesidades de


entrada/salida y las áreas de trabajo dentro del programa. En CICS, estas áreas se
asignan por medio del sistema de alojamiento dinámico de áreas dentro de la
región CICS, esto permite economizar memoria principal, y utilizar la misma copia
de un programa para dar servicio a varios usuarios.
Un programa Batch, lee sus datos de entrada, mientras que el propio CICS lee los
datos para sus programas de aplicación CICS. Por esta causa, un programa de una
aplicación en particular, no necesita estar cargado en la computadora antes de que
llegue su primer mensaje de entrada.
Un programa Batch dirige sus instrucciones de entrada/salida directamente al
Sistema Operativo, Mientras que una aplicación CICS siempre dirige estas
operaciones al CICS y este a su vez maneja la interfase con el Sistema Operativo.

termina JOB Region de CICS


l DE
TSO

Datos Task termi


De nal
CICS
SISTEMA
OPERATIVO
DATOS

Figura 3
3
MANUAL DE CICS

En resumen, CICS es un ambiente capaz de proporcionar sus propios servicios y


que permite el acceso a los distintos manejadores de datos del sistema, en un
formato on-line.

Si ocurre un error:
º Con un programa Batch, podemos reiniciar todo el proceso, o continuarlo desde
el punto de la falla. Esto se debe a que la secuencia de proceso es predecible
(porque esta basada en datos predefinidos), y porque los datos de entrada están
aun disponibles.
º Para el proceso on-line, los datos no están preparados con antelación, sino que se
van metiendo según los necesita la aplicación. Adicionalmente, los datos pueden
provenir de varios usuarios trabajando en forma concurrente.
En otras palabras, los datos no llegan a la aplicación en una secuencia predecible.

Proceso Básico del CICS


• El CICS esta diseñado básicamente para trabajar por medio de las terminales.
• El dialogo con el usuario se hace intercambiando información a través de la
pantalla.
• El usuario envía los datos que previamente ha tecleado en la pantalla.
• La aplicación Analiza estos datos, Procesa, y si es necesario recupera datos de
archivos o bases de datos y, devuelve información al usuario, siempre por
medio de la pantalla.

Prog. De aplicación

Terminal envía datos Recibe


mapa Procesa Programa
Informació recibe y
n envía datos DATOS
Terminal recibe datos
Envía
mapa

Fig. 6 El CICS tiene su enlace principal con el usuario a través de la terminal.

4
MANUAL DE CICS
• Por esta causa, el CICS tiene diferentes instrucciones dedicadas al envío y
recepción de datos desde terminales.
• La pantalla de una terminal, generalmente puede exhibir información en 24
renglones de 80 columnas cada uno, lo que equivale a 1920 posiciones.
• Cada una de estas 1920 posiciones se puede direccionar individualmente, lo
que quiere decir que el programa puede mandar datos a cualquier dirección de
la pantalla.
• Pero es más conveniente crear un formato especial de pantalla para enviar y
recibir los datos en paquetes completos.
• El formato especial de pantallas se llama MAPA.
• El CICS controla cada uno de los programas mientras se ejecuta una aplicación,
para esto, existe un grupo de variables dentro de un bloque llamado Bloque EIB
(Execute Interface Block).
• Son de particular importancia las variables EIBRESP y, EIBRESP2, que contienen
un código de respuesta a la ejecución del comando CICS ejecutado.

CONCEPTOS BASICOS
TRANSACCION (TRANSACTION)

• El CICS es un ambiente que procesa transacciones.


• Una transacción es un proceso, iniciado por una solicitud, generalmente
enviada por el usuario de una terminal.
• El usuario teclea el nombre de la transacción P.Ej. ALTA
• Una sola transacción invoca uno o más programas de aplicación, que al correr,
producen el resultado deseado.

En otras palabras, "Transacción" significa en CICS lo mismo que en el lenguaje normal: Un evento o
acto de negocio entre dos partes. En el proceso Batch, las transacciones de un mismo tipo, se agrupan y
se procesan en tanda (todas las actualizaciones del archivo de personal en un job, la lista de todas las
cuentas sobregiradas en otro job y, así, sucesivamente), en cambio, en un sistema on-line las
transacciones no se acomodan por tipo, sino que se hacen individualmente según van llegado (Una
actualización al archivo de personal, después una factura de algún cliente, ahora una orden de cobro,
etc.).

TAREA (TASK).

5
MANUAL DE CICS
El usuario le indica al CICS que tipo de transacción desea ejecutar, para esto usa
un identificador de transacción. Que por convención, debe ser una palabra de uno
a cuatro caracteres.

El CICS observa el identificador para saber cual programa debe invocar primero
para ejecutar el trabajo solicitado, después, crea un TASK para hacer el trabajo, y
transfiere el control al programa indicado. Entonces un Task es la ejecución de
algún tipo de transacción.

Un Task

• Puede leer de o escribir en la terminal que lo inicio.


• Puede accesar a la información de uno o varios archivos o Bases de datos
• Puede iniciar otros Tasks.
• Ejecutar diferentes operaciones.

Todos estos servicios se solicitan y controlan a través de comandos CICS dentro


de los programas de aplicación.

El CICS maneja varios Tasks de una manera concurrente; En un momento dado,


solamente un task se puede estar ejecutando, sin embargo cuando un task solicita
un servicio que involucra una espera, como es el caso cuando se solicita un
servicio de entrada/salida de archivos, el CICS utiliza el tiempo de espera del
primer task para ejecutar un segundo task, y así sucesivamente. Desde el punto de
vista del usuario, parece como si muchos tasks se estuvieran ejecutando
simultáneamente.

Como iniciar una TRANSACCION CICS:


Normalmente, los usuarios que quieren ejecutar una transacción, primero deben
presentarse con el CICS a través de un proceso llamado Identificación (Signing on),
el Signing on le da al usuario la autoridad para invocar ciertas transacciones.

Para identificarse, el usuario teclea el nombre de una transacción estándar del


sistema llamada: CESN. Esta transacción permite dar el nombre del usuario y su
clave de acceso (PASSWORD).

CESN – SIGNON – Enter Userid and Password

USERID: _ <- Aquí va el nombre del usuario

PASSWORD: <- Aquí va la clave del usuario


6
MANUAL DE CICS

NEW PASSWORD:

Figura 4. Pantalla de la transacción CESN

Una vez identificado, el usuario invoca la aplicación que desea utilizar, para esto
debe teclear el código de identificación de la transacción (El nombre de su
transacción) como principio de su solicitud.

Los programas de aplicación están almacenados en una biblioteca de sistema


enlazada al procesador, estos programas se pueden cargar cuando arranca el
sistema o, sencillamente, cuando se soliciten.
Si un programa esta en la memoria, pero no se usa, el CICS despeja el espacio
para usarlo en otros propósitos cuando el programa se necesite de nuevo, el
CICS carga una nueva copia desde la biblioteca de carga.

Mientras se procesa una transacción, el sistema puede recibir mensajes de


diferentes terminales. Por cada mensaje, el CICS carga un programa de aplicación,
(suponiendo que no este cargado), e inicia un Task para ejecutarlo, entonces
varios Tasks pueden estar corriendo concurrentemente, El CICS mantiene una
línea de control separada para cada Task y puede controlar varios de ellos al
mismo tiempo, esto es lo que se llama Multitasking.
El CICS maneja tanto el Multitasking como las solicitudes de servicios de cada Task,
esto le permite optimizar el uso del tiempo y los recursos del sistema mientras esta
corriendo una transacción. Cuando termina la transacción, el CICS regresa a la
terminal a su estado de espera (Standby).

Recursos Básicos del CICS


TABLA PCT
TABLA PPT
TABLA FCT
• El CICS requiere de varios recursos para efectuar los procesos.
• La mayoría de los recursos están asignados desde la instalación básica del CICS.
• Cuando se crea una nueva transacción, generalmente el diseñador debe dar de
alta los recursos que necesitara para su transacción.
• Los recursos mínimos son:

7
MANUAL DE CICS
• El nombre de la transacción y, su asociación con el programa
• El nombre del programa asociado con la transacción.
• Los archivos que usara la transacción.

• Estos recursos se declaran en tres tablas de recursos:


• La TABLA PCT (Program Control Table) para el nombre de la Transacción y su
asociación con el programa.
• La TABLA PPT (Program Process Table) para el nombre del programa asociado
con la transacción.
• La TABLA FCT (File Control TABLE) para los nombres de los archivos que usara la
transacción.

No es necesario que existan estos elementos, se pueden dar de alta en las tablas
los nombres de las transacciones, programas y archivos, después se crean los
archivos y programas.

• Para accesar las tablas de recursos, se usa la transacción estándar CEMT.

PCT
FCT PPT
TRANSACC1
ARCHIVO1 -PROG1 PROG1
ARCHIVO2 PROG2
. . . TRANSACC2 ...
ARCHIVOn -
PROG2
Fig. 5
Tabla FCT Tabla PCT Tabla PPT
Para archivos Asociación transacción- Para nombres de programa
Programas

Programación en COBOL usando declaraciones CICS


• Al escribir una aplicación diseñada para usarse en el ambiente CICS, se pueden
utilizar diferentes lenguajes de programación, en nuestro caso: COBOL.
• Se pueden incluir instrucciones CICS dentro de un programa COBOL.
• El formato general de un comando CICS es: EXEC CICS a continuación el
nombre del comando seguido cuando sea necesario de una o más opciones,
terminado con END-EXEC
8
MANUAL DE CICS

EXEC CICS
Nombre del comando CICS
[Opcion1...]
END-EXEC

Por ejemplo, el comando CICS SEND MAP quedaría así en COBOL

EXEC CICS
SEND MAP (MAPA1)
MAPSET (MAPSET1)
ERASE
CURSOR
END-EXEC

Observe que:

• Las palabras reservadas EXEC CICS deben estar en un mismo renglón


• El resto de la declaración puede estar en diferentes renglones.
• Los Comandos CICS pueden insertarse dentro del programa COBOL con COPY.
• El CICS controla cada uno de los programas mientras se ejecuta una aplicación,
por esta causa, existe un grupo de variables dentro de un bloque llamado
Bloque EIB (Execute Interface Block), que representan la Interfase de ejecución
entre CICS y el programa de aplicación.
• Son de particular importancia las variables EIBRESP y, EIBRESP2 (PIC S9(8)
COMP), que contienen un código de respuesta a la ejecución del comando CICS.
• En caso de que el comando se ejecute correctamente, el campo EIBRESP
contiene 0 (cero), en caso contrario contiene un numero de código que
representa el estado de la ejecución del comando.

Por ejemplo: Al terminar un comando CICS, si se ejecuto correctamente, continuar,


en otro caso llamar al manejo de errores.

IF EIBRESP = 0 THEN
CONTINUE
ELSE
MOVE ‘ ERROR EN COMANDO CICS ’ TO MENSAJE
PERFORM 900-ERROR
END-IF

PROGRAMACION DE LAS APLICACIONES.

Una vez establecidas las condiciones de diseño, la interfase con el usuario,


debemos programar la aplicación usando el lenguaje de programación, para esto
existen dos enfoques de operación, uno llamado sistema conversacional, donde el
9
MANUAL DE CICS
programa entra en una conversación con el usuario, permitiendo el acceso a los
recursos del sistema, mientras se ejecuta el proceso, y otro llamado
Pseudoconversacional, en el cual, un conjunto de transacciones no-
conversacionales dan al usuario la apariencia de una sola transacción
conversacional, en este caso, los recursos del sistema se usan brevemente, y
después se liberan mientras el usuario observa sus resultados en la pantalla y
decide la siguiente operación que desea ejecutar.

Una aplicación escrita para CICS no es muy diferente de una aplicación escrita para
BATCH, por ejemplo los pasos típicos para una aplicación BATCH Tal como se
vieron en los apuntes de COBOL son:

1. Inicializar la corrida completa, poner contadores en cero, abrir los archivos,


Leer primera entrada
2. Validar los datos de entrada.
3. Procesar los datos.
4. Imprimir los resultados. Se repite hasta el final de los
datos
5. Inicializar para la siguiente entrada.
6. Leer la entrada.
7. Regresar al paso 2, y repetir hasta que se acaben los datos.
8. Terminar, escribir totales, y cerrar archivos.

Una aplicación CICS, por su parte:

1. Recibe pantalla con datos enviados por el usuario


2. Procesa datos recibidos
3. Envía pantalla con datos ya procesados para que el usuario pueda verlos
4. Termina (RETURN)
TERMINACION DEL PROGRAMA
• El CICS se encarga de repetir la transacción cuando ocurra otra
comunicación de la terminal.
O Bien,
• El CICS transfiere el control a otro programa
O bien,
• El CICS da por terminada la transacción

Observe que:
• En una transacción Pseudoconversacional, el programa ocupa brevemente los
recursos del sistema, después termina
• El CICS se encarga de posteriormente de continuar o terminar el proceso, según
las opciones de RETURN

ASKTIME
ASKTIME
10
MANUAL DE CICS
[ABSTIME (Área de datos)]

• ASKTIME actualiza la variable de fecha (EIBDATE) y la variable de hora (EIBTIME)


del CICS.
• Estas dos variables contienen la fecha y la hora en formato numérico.
• Optativamente puede entregar los datos de hora y fecha (en formato numérico)
en una variable de COBOL.

Ejemplo 1: Actualizar las variables EIBDATE y EIBTIME (Fecha y Hora);


Adicionalmente poner la fecha y hora en el campo de COBOL WF-ABSTIME ( PIC
S9(15) COMP-3. )

EXEC CICS
ASKTIME
ABSTIME (WF-ABSTIME)
END-EXEC

Observe que:
• WF-ABSTIME es un campo numérico y que la fecha y la hora están en forma de
un numero entero.
• Conviene convertir la fecha y la hora a un formato más legible, Para formatear
la fecha numérica, en formato de texto más legible se usa el comando
FORMATTIME.

FORMATTIME
FORMATTIME
ABSTIME (Área de datos con la fecha en forma numérica)
DATESEP (Separador de fecha)
TIMESEP (Separador de hora)
Formato de la fecha (Área para fecha)
TIME (Área para la hora)

Ejemplo convertir la fecha/hora de WF-ABSTIME (PIC S9(15) COMP-3) a formato de


texto, poner en WX-DATE (PIC X(8) ) la fecha separada por “/” y, en WX-HORA (PIC
X(8) ) la hora separada por “:”

EXEC CICS FORMATTIME


ABSTIME (WF-ABSTIME)
DATESEP ('/') YYDDD
TIMESEP (':') YYMMDD
DDMMYY (WX-DATE) <- el formato de fecha YYDDMM
TIME (WX-HORAS) DDMMYY
END-EXEC MMDDYY

READ VSAM
READ
11
MANUAL DE CICS
FILE (Nombre de archivo)
INTO (Nombre de área)
[LENGTH (Longitud del área de datos)]
RIDFLD (Área de la clave)
[KEYLENGTH (Longitud del área de clave)]
[UPDATE]

• READ Lee un registro de un archivo declarado en la FCT


• Antes de usar READ, se debe identificar el registro que se va a leer por medio
de su CLAVE (KEY), usando el área de clave RIDFLD (Record Identification
FieLD).
• Si se utiliza la opción UPDATE, se localiza un registro para posteriormente
borrarlo (Ver DELETE) o para modificarlo (Ver REWRITE).
• En caso de no localizar el registro solicitado, el EIBRESP contiene el valor 13
(NOTFND)

Ejemplo 1: Leer el registro cuya clave es ‘D11’ del archivo ARCHIVO1 y, poner los
datos leídos en RG-ARCHIVO1

MOVE ‘D11’ TO RD-CLAVE


EXEC CICS
READ
FILE (‘ARCHIVO1’)
INTO (RG-ARCHIVO1)
LENGTH (WX-LON-DATOS)
RIDFLD (RD-CLAVE)
KEYLENGTH (WX-LON-CLAVE)
END-EXEC

Ejemplo 2 Leer para posteriormente modificar el registro clave ‘A00’


del archivo ARCHIVO1.

MOVE ‘A00’ TO RD-CLAVE

EXEC CICS
READ
FILE (‘ARCHIVO1’)
INTO (RG-ARCHIVO1)
LENGTH (WX-LON-DATOS)
RIDFLD (RD-CLAVE)
KEYLENGTH (WX-LON-CLAVE)
UPDATE <- UPDATE se usa para localizar el registro
END-EXEC

WRITE VSAM
WRITE
12
MANUAL DE CICS
FILE (Nombre de archivo)
FROM (Nombre de área)
[LENGTH (Longitud del área de datos)]
RIDFLD (Área de la clave)
[KEYLENGTH (Longitud del área de clave)]

• WRITE Añade un nuevo registro a un archivo declarado en la FCT


• En caso de que la clave de acceso en RIDFLD ya exista en el archivo (CLAVE
DUPLICADA); el EIBRESP contiene el valor 14 (DUPREC)

Ejemplo 1: Grabar un nuevo registro con los datos contenidos en el área RG-
ARCHIVO1, cuya clave es ‘000324’ en el archivo ARCHIVO1 y, en caso de
clave duplicada, poner un mensaje en
WL-MENSAJE.

MOVE WS-DATOS TO RG-ARCHIVO1


MOVE ‘000324’ TO RD-CLAVE

EXEC CICS
WRITE
FILE (‘ARCHIVO1’)
FROM (RG-ARCHIVO1)
LENGTH (WX-LON-DATOS)
RIDFLD (RD-CLAVE)
KEYLENGTH (WX-LON-CLAVE)
END-EXEC

IF EIBRESP = 0 THEN
CONTINUE
ELSE
IF EIBRESP = 14 THEN
MOVE ‘CLAVE DUPLICADA ‘ TO WL-MENSAJE
ELSE
PERFORM 990-ERROR
END-IF
END-IF

13
MANUAL DE CICS

REWRITE (VSAM)
REWRITE
FILE (Nombre de archivo)
FROM (Área de datos)
[LENGTH (Dato numérico)]

• Modifica un registro previamente leído de un archivo VSAM.


• El registro a modificar, se debe leer antes con READ UPDATE
• El nombre de archivo debe ser un archivo VSAM declarado en la FCT
• El registro especifico que se va a modificar en el archivo, se indicara por
medio de su clave (Record IDentification FieLD), en la opción RIDFLD de READ.
• La longitud de la clave se puede especificar en la opción KEYLENGTH

Ejemplo : Modificar en el archivo VSAM EMPLEADO, el registro identificado por


la clave
RD-EMPNO. Previamente leída con READ opción UPDATE

MOVE WS-CLAVE TO RD-EMPNO

EXEC CICS
READ
FILE (‘EMPLEADO’)
INTO (RG-EMPLEADO)
RIDFLD (RD-EMPNO)
KEYLENGTH (WX-LON-CLAVE)
UPDATE
END-EXEC

MOVE WS-DATOS TO RG-EMPLEADO

EXEC CICS
REWRITE
FILE (‘EMPLEADO’)
FROM (RG-EMPLEADO)
END-EXEC

Observe que:
• En caso de no localizar el registro solicitado, el EIBRESP contiene el valor 13
(NOTFND)
14
MANUAL DE CICS

DELETE (VSAM)
DELETE
FILE (Nombre de archivo)
RIDFLD (Área de datos)
[KEYLENGTH (Dato numérico)]
[GENERIC [ NUMREC (Área de datos)] ]

• DELETE Borra uno o varios registros de un archivo VSAM


• El nombre de archivo debe ser un archivo VSAM declarado en la FCT
• El registro especifico que se va a borrar del archivo, se indicara por medio de
su clave (Record IDentification FieLD), en la opción RIDFLD.
• La longitud de la clave se puede especificar en la opción KEYLENGTH
• Se puede eliminar un grupo de registros con un solo comando DELETE,
identificando el grupo con la opción GENERIC.
• En caso de usar GENERIC, el CICS devuelve el numero de registros
borrados en la variable indicada en NUMREC.
• Existe una forma diferente de este comando; para borrar un registro que
previamente se ha leído para modificarlo con el comando READ UPDATE. Pero
en este caso, el registro no se reescribe, sino que se borra, en este caso no se
especifica la opción RIDFLD.

Ejemplo 1: Borrar del archivo VSAM EMPLEADO, el registro identificado por la clave
RD-EMPNO

EXEC CICS DELETE


FILE (‘EMPLEADO’)
RIDFLD (RD-EMPNO)
KEYLENGTH (WX-LON-CLAVE)
END-EXEC

Ejemplo 2: Borrar del archivo VSAM EMPLEADO, el registro identificado por la


clave
RD-EMPNO. Previamente leída con READ opción UPDATE

EXEC CICS READ


FILE (‘EMPLEADO’)
RIDFLD (RD-EMPNO)

15
MANUAL DE CICS
KEYLENGTH (WX-LON-CLAVE)
UPDATE
END-EXEC

EXEC CICS DELETE


FILE (‘EMPLEADO’)
END-EXEC
Observe que:
• En caso de no localizar el registro solicitado, el EIBRESP contiene el valor 13
(NOTFND)

Area Temporal TEMPORARY STORAGE


• La comunicación entre las transacciones de un sistema puede hacerse por
medio de diferentes áreas de almacenamiento de datos que no dependen del
programa de aplicación, sino que dependen directamente del CICS.
• La TS (Temporary Storage) es un área que puede utilizarse para comunicación
entre las diferentes transacciones de un sistema.
• En realidad la TS es una COLA (QUEUE), que puede considerarse como un
pequeño archivo secuencial fácil de crear y de consultar que no requiere
declaración en la FCT
• El comando WRITEQ TS permite guardar información en la TS, inclusive, si no
existe la cola, WRITE Q TS la crea antes de escribir en ella.
• El comando READQ TS lee la información almacenada en la cola (QUEU).
• El comando DELETEQ TS Elimina la cola.

Transacción
Transacci
BE00
ón

BE01 TS

Otra
instancia de
la
transacción
BE00

16
MANUAL DE CICS

• La TS puede ser leída o manipulada por cualquiera de los programas de


aplicación.

WRITEQ TS (Temporary Storage)


WRITEQ TS
QUEUE (Nombre de cola)
FROM (Nombre de área)
[LENGTH (Longitud del área de datos)]
ITEM (Area Numérica)
[REWRITE]

• WRITEQ TS Añade un nuevo registro a la cola.


• Si la cola no existe, se crea una con el nombre indicado y se escribe el primer
registro.
• Si se usa la opción REWRITE, no se añade un nuevo registro, sino que se
reescribe el registro indicado en ITEM.
• El área numérica (PIC S9(04) COMP-3) en ITEM, devuelve el numero de registro
(Ítem) que se grabo en la cola. Si se usa REWRITE, en la variable de ITEM se
pone el numero del ítem que se va a modificar.

Ejemplo 1. Añadir un NUEVO registro en la cola ‘A000’, tomando los datos del área
WTS-REG, si no existe la cola, se crea, y se graba el primer registro, si la
cola ya existe, se graba el siguiente registro y la variable indicada en
ITEM, devuelve el núm. de ítem grabado.

EXEC CICS
WRITEQ TS
QUEUE (‘A000’)
FROM (WTS-REG)
ITEM (NUM-ITEM) <- la variable devuelve el núm. Del item
END-EXEC grabado

Ejemplo 2. Modificar registro (ITEM) núm. 4 de la cola ‘A000’, con los datos en del
área
17
MANUAL DE CICS
WTS-REG.

MOVE 4 TO NUM-ITEM <- Primero se indica el numero de ITEM

EXEC CICS
WRITEQ TS
QUEUE (‘A000’)
FROM (WTS-REG)
ITEM (NUM-ITEM) <- La variable numérica contiene 4
REWRITE <- La opción REWRITE indica que se modificara un ítem
END-EXEC previamente grabado

Observe que:

• Si el numero de ítem no se localiza en la cola, se genera el código 26 (ITEMERR)


en la variable EIBRESP.

READQ TS (Temporary Storage)


READQ TS
QUEUE (Nombre de cola)
INTO (Nombre de área)
[LENGTH (Longitud del área de datos)]
ITEM (Area Numérica)
[NEXT]

• READQ TS Lee la cola de almacén temporal y `pone el resultado de la lectura


en el área de datos indicada.
• El área numérica indica el numero de registro (Ítem) que se va a leer de la cola.
• La opción NEXT indica que se leerá el siguiente Ítem de la cola (el numero
actual de ítem, estará asignado por la ultima instrucción de acceso a la cola P.ej
READQ o WRITEQ)

Ejemplo 1. Leer el registro (ITEM) numero 5 de la cola ‘A000’ y, poner los datos en
el área
WTS-REG.

MOVE 5 TO WC-NUMITEM

EXEC CICS
READQ TS
QUEUE (‘A000’)
INTO (WTS-REG)
ITEM (WC-NUMITEM)
END-EXEC
18
MANUAL DE CICS

Observe que:
Si no se localiza el registro de la TS solicitado, se genera la condición 26
(ITEMERR) en la variable

Ejemplo 2. Leer el siguiente registro (ITEM) de la cola ‘A000’ y, poner los datos en
el área
WTS-REG.

EXEC CICS
READQ TS
QUEUE (‘A000’)
INTO (WTS-REG)
NEXT
END-EXEC

Observe que:
• Al tratar de leer el registro siguiente al ultimo de la cola, se genera el código 26
(ITEMERR) en la variable EIBRESP.

DELETEQ TS (TEMPORARY STORAGE)


DELETEQ TS
QUEUE (Nombre de Cola)

• DELETEQ Borra todos los datos asociados con una cola de almacén temporal, y
libera el área ocupada por la cola.
• Es conveniente borrar los datos de TS (TEMPORARY STORAGE) en cuanto ya no
sean de utilidad para ahorrar espacio.
• El nombre de la cola debe ser el mismo que se utilizo en WRITEQ TS para crear
la QUEUE.

Ejemplo Borrar la cola identificada con la variable WX-NOMBRE.

EXEC CICS

DELETEQ TS
QUEUE (WX-NOMBRE)

END-EXEC

IF EIBRESP = 0 THEN
CONTINUE
ELSE
MOVE ‘ERROR AL BORRAR LA COLA ‘ TO WL-MENSAJE
END-IF

19
MANUAL DE CICS
Observe que:
• En caso de un error, la variable EIBRESP contiene el código de error.
• El error más probable es equivocarse con el nombre de la cola.
• El código 44 (QIDERR) corresponde a un error en el nombre de la cola.

Revisión de un archivo BROWSE


• La revisión (BROWSE) de un archivo, consiste en posicionar el apuntador de un
archivo en algún registro y, a partir de él, leer hacia delante del archivo, o
hacia atrás de él.
• El comando STARTBR inicializa la revisión posicionando el apuntador en un
registro.
• El comando READNEXT lee el siguiente registro dentro de una revisión.
• El comando READPREV lee el registro anterior dentro de una revisión.
• El comando ENDBR termina la revisión.
EXEC CICS
STARTBR
FILE (‘EMPLEADO’)
RIDFLD (RD-EMPNO)
END-EXEC
Archivo1
Reg 1 READPREV EXEC CICS
Reg 2 READPREV
Reg 3 FILE (‘EMPLEADO’)
INTO (RG-EMPLEADO)
. STARTBR RIDFLD (RD-EMPNO)
. END-EXEC
.
EXEC CICS
Reg n READNEXT
READNEXT 20
MANUAL DE CICS
FILE (‘EMPLEADO’)
INTO (RG-EMPLEADO)
RIDFLD (RD-EMPNO)
END-EXEC

• READNEXT y READPREV siempre se usan en combinación con STARTBR


STARTBR
FILE (Nombre del archivo)
RIDFLD (Nombre del área de clave)
KEYLENGTH (Longitud del área de clave)
[REQID (Numero de la revisión) ]

READPREV READNEXT
FILE (Nombre del archivo) FILE (Nombre del archivo)
INTO (Area de datos) INTO (Area de datos)
LENGTH (Longitud de datos) LENGTH (Longitud de datos)
RIDFLD (Area de clave) RIDFLD (Area de clave)
KEYLENGTH (Long. de clave) KEYLENGTH (Long. de clave)
[REQID (Numero de la revisión) [REQID (Numero de la revisión)

ENDBR
ENDBR
FILE (Nombre de archivo)
[REQID (Nombre de área) ]

• ENDBR Da por terminada una revisión (BROWSE) en un archivo declarado en la


FCT.
• También se usa para terminar una revisión (BROWSE) de una tabla de CICS.
• El valor REQID es un identificador (S9(04) COMP-3) numérico que se usa para
identificar diferentes solicitudes de BROWSE.
• Si se omite REQID, el valor por default es Cero.

Ejemplo: terminar la revisión del archivo EMPLEADO.

EXEC CICS
STARTBR
FILE (‘EMPLEADO’)
RIDFLD (RD-EMPNO)
KEYLENGTH (WX-LON-CLAVE)
END-EXEC

EXEC CICS
READNEXT
FILE (‘EMPLEADO’)
21
MANUAL DE CICS
INTO (RG-EMPLEADO)
RIDFLD (RD-EMPNO)
KEYLENGTH (WX-LON-CLAVE)
END-EXEC

. . .

EXEC CICS
ENDBR
FILE (‘EMPLEADO’)
END-EXEC

Observe que:
• En caso de error, la variable EIBRESP contiene el código de error
• El error más probable en ENDBR es que no este iniciada una revisión con el
comando STARTBR
• El código de error 16 (INVREQ) corresponde al caso de una revisión no iniciada.

RECEIVE MAP
RECEIVE
MAP (Nombre de MAPA)
MAPSET (Nombre del MAPSET)

• Una manera muy conveniente de manejar datos en la pantalla, es por medio de


un formato de pantalla completa.
• Un MAPA es un formato de datos de pantalla completa.
• RECEIVE MAP recibe una pantalla completa desde la terminal, este formato
incluye los datos enviados por el usuario.

Ejemplo recibir el mapa IDENTIF que esta dentro del mapset IDENT01, que contiene
las variables USER y PASWORD.

EXEC CICS RECEIVE


MAP (‘IDENTIF’)
MAPSET (‘IDENT01’)
END-EXEC

22
MANUAL DE CICS
• En caso de un error en la recepción del mapa, se genera el código
36 (MAPFAIL) en EIBRESP

IF EIBRESP = 36 THEN
MOVE ‘ ERROR EN LA RECEPCION DEL MAPA ‘ TO WL-MENSAJE
END-IF

• Las variables contenidas en el mapa se pueden usar después de recibido este


con los valores enviados por el usuario.

MOVE USERI TO WX-BUSCA-U <- USERI contiene los datos de USER

PERFORM 400-BUSCA-USUARIO
IF USUARIO-EXISTE THEN
CONTINUE
ELSE
MOVE ‘ ERROR EN NOMBRE DE USUARIO ‘ TO WL-MENSAJE
END-IF

Observe que:

• La variable USERI contiene el dato tecleado por el usuario dentro del campo
USER

SEND MAP
SEND
MAP (Nombre de MAPA)
MAPSET (Nombre del MAPSET)
[FROM (Nombre de área) ]
[LENGTH (Dato numérico) ]
[CURSOR (Posición del cursor)]
[ERASE ]

• Una manera muy conveniente de manejar datos en la pantalla, es por medio de


un formato de pantalla completa.
• Un MAPA es un formato de datos de pantalla completa.
• SEND MAP envía una pantalla completa hacia la terminal, este formato incluye
los datos asignados a los campos del mapa por el programa.
• Si se usa la opción FROM, se especifica el área que contiene los datos que se
procesaran.
23
MANUAL DE CICS
• Si no se especifica FROM, el nombre del área que se procesa es el nombre del
mapa con el SUFIJO O.
• CURSOR se usa para especificar la posición del Cursor al enviar el mapa (de 1 a
1920), si no se pone, se usa el valor mas reciente.
• ERASE indica que se debe borrar el BUFFER de pantalla antes de que se exhiban
los datos.

Ejemplo enviar el mapa IDENTIF que esta dentro del mapset IDENT01, que contiene
las variables USER y PASWORD.

MOVE WX-USUARIO TO USSERO <- USERO recibe los datos que se enviaran

EXEC CICS SEND


MAP (‘IDENTIF’)
MAPSET (‘IDENT01’)
CURSOR
ERASE
END-EXEC

• En caso de un error en el envío del mapa, se genera el código 36 (MAPFAIL) en EIBRESP

IF EIBRESP = 36 THEN
MOVE ‘ ERROR EN EL ENVIO DEL MAPA ‘ TO WL-MENSAJE
END-IF

• Los Campos variables contenidos en el mapa se exhiben en la pantalla del


usuario con los nuevos valores asignados.
• La variable USERO contiene los nuevos datos del campo USER.

RETURN
RETURN
TRANSID (Nombre de la transacción )
COMMAREA (Nombre del área de comunicación)
LENGTH (Longitud del área de comunicación)

• Un programa que corre en el ambiente CICS termina cuando se devuelve el


control al CICS o cuando se transfiere su control a otro programa.
• RETURN devuelve el control al CICS o en ciertos casos devuelve el control a otro
programa en un nivel superior.
• Si se usa la opción TRANSID, el CICS queda en espera de una comunicación de
la terminal que ejecuto la aplicación, al llegar la comunicación, se ejecuta la
transacción indicada en TRANSID.

24
MANUAL DE CICS
• El área de comunicaciones indicada en COMMAREA debe estar declarada en la
LINKAGE SECTION su nombre debe ser DFHCOMMAREA y se utiliza como medio
de comunicación entre las Transacciones.
• Si no se usa TRANSID, el CICS da por terminada toda referencia a la ejecución
del programa.

Ejemplo1. Terminar el programa BE00A con RETURN. Cuando el CICS reciba una
comunicación de la terminal deberá ejecutar la transacción BE00, usando
como área de comunicaciones WX-COMMAREA.

MOVE ‘BE00’ TO WX-TRANSID


MOVE DFHCOMMAREA TO WX-COMMAREA
MOVE 500 TO WX-LON-COMMAREA

EXEC CICS
RETURN
TRANSID (WX-TRANSID)
COMMAREA (WX-COMMAREA)
LENGTH (WX-LON-COMMAREA)
END-EXEC

Ejemplo 2. Terminar la ejecución del programa sin instrucciones para el CICS.

EXEC CICS
RETURN
END-EXEC

XCTL
XCTL
PROGRAM (Nombre del Programa )
COMMAREA (Nombre del área de comunicación)
LENGTH (Longitud del área de comunicación)

• Un programa que corre en el ambiente CICS termina cuando se devuelve el


control al CICS o cuando se transfiere su control a otro programa.
• XCTL termina el programa actual, y TRANSFIERE el control a otro programa en
el mismo nivel lógico

25
MANUAL DE CICS
• El nuevo programa corre hasta su terminación que puede ser RETURN o XCTL.
• El área de comunicaciones debe estar declarada en la LINKAGE SECTION del
programa receptor, su nombre debe ser DFHCOMMAREA y se utiliza como medio
de comunicación entre los programas

Ejemplo. Terminar el programa BE00A con XCTL. Transfiriendo el control al


programa BE01A, usando como área de comunicaciones WX-COMMAREA.

MOVE ‘BE01A’ TO WX-PROGRAM


MOVE DFHCOMMAREA TO WX-COMMAREA
MOVE 500 TO WX-LON-COMMAREA

EXEC CICS
XCTL
PROGRAM (WX-PROGRAM)
COMMAREA (WX-COMMAREA)
LENGTH (WX-LON-COMMAREA)
END-EXEC

El error más común en la transferencia es:

EIBRESP = 27 (PGMIDERR)

Ocurre en alguna de las siguientes situaciones:


El programa no esta declarado en la PPT (EIBRESP2=1).
El programa esta deshabilitado (EIBRESP2=2).
El programa no se puede cargar (EIBRESP2=3).
La definición del programa es para un programa remoto (EIBRESP2=9).

TERMINALES

La terminal típica en un sistema de procesos de datos es la IBM 3270 que es una


familia de impresoras y terminales de vídeo, si bien difieren en tamaño y
velocidad, básicamente utilizan el mismo formato de datos.

Una terminal es un teclado y una pantalla de vídeo que se utiliza tanto para
entrada como para salida de datos, y en ambos casos la pantalla (o más
propiamente la memoria que la representa), es el medio crucial de intercambio
entre la terminal y el procesador.

26
MANUAL DE CICS
Cuando el usuario pone en la pantalla los datos que desea procesar, usa una tecla
de atención para enviar estos datos al procesador.

Cuando la aplicación obtiene la información que desea presentar al usuario, la


envía hacia la terminal para que se exhiba en la pantalla.

El propósito del teclado es modificar la pantalla, preparando los datos de entrada


para enviarlos al procesador cuando estén listos.

Cuando la aplicación escribe en una terminal, el procesador envía una serie de


datos (STREAM) en un formato especial para terminales 3270, el stream contiene
no solamente los textos que van a exhibirse en la pantalla, sino información de
control que define la manera como va a exhibirse el texto en la pantalla.

Las impresoras que corresponden a una terminal, utilizan el mismo sistema de


codificación, por lo tanto el mismo STREAM que se envía a una terminal de vídeo,
puede utilizarse para una impresora.

PANTALLA DE LA 3270

La pantalla de la 3270 puede exhibir hasta 1920 caracteres distribuidos en 24


renglones de 80 columnas cada uno.

Cada una de estas 1920 posiciones tiene una dirección individual, esto quiere decir
que un programa de aplicación puede enviar datos directamente a cualquiera de
estas posiciones en la pantalla, pero no es necesario dirigir cada carácter a su
posición individualmente, mas bien, dentro de un programa, se divide la pantalla
en campos (FIELDS).

Un campo es un conjunto de posiciones consecutivas que tienen las mismas


características (mismo color, misma intensidad, protegidos, no protegidos, etc.).
Generalmente, se usan los campos de la pantalla de la misma manera que se usan
los campos de salida en un reporte, para contener un ítem de datos.

TERMINALES

Por ejemplo, la pantalla de identificación (SIGN ON) de CICS:

Columnas
27
MANUAL DE CICS
12 5 12

Renglones
1 -> CESN – SIGNON – Enter Userid and Password
2 ->
3 -> USERID: _

5 -> PASSWORD:

7 -> NEW PASSWORD:

Hay varios campos en esta pantalla, sin embargo, solo cuatro de ellos están
exhibiendo datos; el primero esta en el renglón 1, columna 1 (Posición 1,1) y
contiene los datos:

CESN -SIGNON- Enter USERID and PASSWORD

El campo esta especificado:


PROTECTED Lo que quiere decir que el operador no puede escribir sobre esta
área de la pantalla en su terminal.
BRIGHT Que significa exhibirse brillante para enfatizar su información.

El segundo esta en la posición (3,5) y contiene el dato USERID: también


PROTECTED y BRIGHT.
El subrayado después de USERID: se llama cursor y marca la posición donde se
aceptara el siguiente carácter que se envíe del teclado, estos dos campos se han
usado como salida, únicamente para informar algo al usuario, el segundo campo
le indica al usuario lo que debe teclear en el tercer campo que empieza en la
posición (3,12)

Este tercer campo, es diferente porque se utiliza para que el operador de la


terminal teclee información en él, y esta información sea la entrada de datos la
próxima vez que la terminal envíe hacia el procesador, por lo tanto NO ESTA
PROTEGIDO, y tiene intensidad normal. Aunque no se puede ver, tiene 20
posiciones de longitud porque esta es la longitud máxima permitida de la
identificación de un usuario de CICS.

28
MANUAL DE CICS
TERMINALES
Columnas
12 5 12

Renglones
1 -> CESN – SIGNON – Enter Userid and Password
2 ->
3 -> USERID:X___________________X_

5 -> PASSWORD: STOPPER


Tercer campo
7 -> NEW PASSWORD:

Al final del tercer campo hay otro campo conocido como Tope (Stopper Field)
tampoco se puede ver, y su única función es impedir que el usuario teclee mas de
20 caracteres en el campo de identificación, esto se debe a que el principio de un
campo esta señalado en el buffer de datos de la pantalla pero el final no esta
señalado, un campo termina en realidad al principio del siguiente campo, por eso
el STOPPER se usa para limitar un campo de entrada. Lo importante del stopper es
que esta Protegido y cuando un usuario teclea una identificación de mas de 20
caracteres el cursor alcanza la posición del stopper y como esta protegido, se
bloquea el teclado y no puede teclear mas caracteres.
Después hay otros tres campos en las posiciones (5,5), (5,15), y (5,24) son como
los tres campos anteriores, el primero solicita la clave de acceso (PASSWORD) y
esta protegido, el segundo es un campo de entrada donde se debe teclear la clave
de acceso, esta desprotegido para teclear en él, y tiene un atributo un tanto
extraño, DARK o sea invisible esto quiere decir que los datos aunque se tecleen no
aparecen en la pantalla, esto se debe a que la Password se supone que es secreta
y ningún curioso que este viendo la pantalla debe enterarse de la clave, el tercer
campo es por supuesto un Stopper que limita el campo de Password a 8
caracteres.

Cuando se analiza mas de cerca la configuración de los campos en una pantalla, se


observa que los campos parecen ser una posición más largos de lo que deberían
ser.
Si el campo de nombre de 20 posiciones empieza en la posición (3,11) ¿ porque el
stopper empieza en la posición (3,32) y no en la (3,31) ¿ Bien esto se debe a que
los atributos de exhibición del campo (Protected, Bright etc.) ocupan una posición
en la pantalla por cada campo, o sea, si empezamos un campo de 20 posiciones en
la posición (3,11), el BYTE de atributos (Así se llama) del campo, se localiza en
(3,11) y los datos van desde (3,12) hasta (3,31).

El Byte de atributos se ve en la pantalla como un espacio y esta autoprotegido


independientemente de que el campo de datos este protegido o no, así el usuario
no puede cambiar la identidad de un campo desde el teclado.
29
MANUAL DE CICS

TERMINALES
Columnas
12 5 12

Renglones
1 -> CESN – SIGNON – Enter Userid and Password
2 ->
3 -> USERID:X___________________X_

5 -> PASSWORD: STOPPER


Tercer campo
7 -> NEW PASSWORD:

El formato de exhibición de un campo puede tener diferentes posibilidades:

High intensity Brillante


Normal intensity Normal
Dark Invisible (Letras del mismo color que el fondo)
Inverse Fondo claro, letras obscuras
Color siete colores básicos

El byte de atributos también controla lo que puede hacer el teclado con el campo
de datos las opciones pueden ser:

UNPROTected El usuario puede teclear información en el campo de datos.


NUMeric El usuario puede únicamente teclear dígitos, punto decimal
y signo de menos en el campo.
PROTected El usuario no puede teclear nada dentro del campo.
AutoSKIP El usuario no puede teclear nada dentro del campo, pero
adicionalmente, si el campo anterior esta lleno, el cursor
automáticamente se salta este campo hasta el siguiente campo
disponible.

Autoskip se usa para los campos de stopper así, si el campo anterior se llena de
información, el cursor pasa sobre el stopper y va al siguiente campo disponible, de
esta manera el usuario puede teclear continuamente llenando los campos y
pasando automáticamente al siguiente sin necesidad de usar las teclas de avance
de cursor.

30
MANUAL DE CICS
Cuando los datos de los campos se envían a la terminal, o se reciben de la
terminal, generalmente se arreglan en un formato de pantalla completa llamado
MAPA, aunque también pueden enviarse sin formatear, pero el envío de datos
Unformatted se usa solo para mensajes sencillos.

BMS
Apoyo básico para hacer mapas Basic Mapping Support (BMS)

No es necesario formatear los datos que se envían a las terminales dentro de la


aplicación, generalmente se utiliza una prestación del CICS llamada Basic Mapping
Support o simplemente BMS.

Esta prestación del CICS permite crear un formato de datos llamado MAPA que
presenta una estructura definida por el programador, para el control de los datos
de entrada/salida de la pantalla.
El BMS simplifica el trabajo de programación pues mantiene independientes las
especificaciones de formato del hardware utilizado.

La primera pantalla que deseamos que vea el usuario es la pantalla de MENU


principal, según la describimos en la pagina 36 aquí la volvemos a dibujar, pero
para facilitar las explicaciones, se le añadieron números de renglón y de columna,
se señalaron con subrayados los campos que no ven a menos que estén ocupados
con datos. Se marco la posición del byte de atributos de los stoppers con un
signo, y para los demás campos con el signo + , estos marcadores no aparecen en
la pantalla, y se han colocado únicamente para facilitar la explicación.

Esta pantalla se define por medio de MACROS de BMS que son una forma de
lenguaje ensamblador.

Una vez ensambladas estas macros, producen lo que llama el MAPA FISICO, que
contiene las instrucciones necesarias para uso del CICS.

Una segunda fase de ensamblado nos produce el MAPA SIMBOLICO (Symbolic


Description Map)

El mapa simbólico es una serie de declaraciones en el lenguaje objeto que se


utilizara para programar la aplicación, en este caso COBOL, por esto, el mapa
simbólico se integrara al programa de aplicación COBOL por medio de una
declaración COPY.

Este mapa simbólico, contiene la información necesaria para:

• Crear la pantalla con todos los títulos y leyendas en las posiciones adecuadas.
• Los atributos necesarios para cada uno de los campos.
31
MANUAL DE CICS
• Integrar las variables de datos del programa de aplicación con los campos de la
pantalla, para pasar datos del programa a la pantalla y viceversa.

Ahora, veamos como se manejan las macros de BMS, que a pesar de parecer
complicadas, en realidad son muy sencillas.

MACRO DFHMDF de BMS


(1)
Nombre de Campo DFHMDF POS=(Renglon,columna),LENGTH=número, -
INITIAL=’texto’,OCCURSS=(numero), -
ATTRB=(atributo1, atributo2,...),
-
COLOR=color, -
HILIGHT=REVERSE

• La Macro DFHMDF se usa para generar la definición de cada uno de los campos
del mapa BMS.
• Para cada campo de la pantalla se necesita una Macro DFHMDF como la
siguiente:

Si los datos no caben en un renglón, se debe usar un carácter de continuación en


la columna 72, cualquier carácter es valido, excepto espacio y él ultimo del
renglón.

Los elementos de la macro tienen los siguientes significados.

Nombre de Campo
Este es el nombre del campo tal como se usara en el programa (hasta cierto
punto). Cada campo que se va a leer o a escribir en la pantalla, debe llevar
nombre, pero los campos de títulos o letreros que son constantes, no necesitan
llevar nombre, tampoco los stopper necesitan nombre, pues no los vamos a leer o
escribir desde el programa. Los nombres de campo: Empiezan con letra, contienen
solo letras o números y deben ser de 1 a 7 caracteres.

DFHMDF
Este es el identificador de Macro, indica que se esta definiendo un campo.

POS= (Renglon,Columna)
32
MANUAL DE CICS
Esta es la posición en la pantalla donde va a aparecer el campo, solo hay que
recordar que un campo empieza con su byte de atributo, por lo tanto, si se escribe
POS=(1,1), el byte de atributo del campo estará en el renglón 1 y columna 1, y los
datos empiezan en la columna 2.

LENGTH=numero
Esta es la longitud del campo SIN contar el byte de atributo.

INITAL=’texto’
Este es el contenido inicial de un campo de texto, así se especifican los títulos y los
letreros de la pantalla que son independientes del programa.

Ejemplo: INITIAL PARA el primer campo de la pantalla de menú seria:

INITIAL=’ MENU DE OPCIONES’

MACRO DFHMDF de BMS


(2)
Nombre de Campo DFHMDF POS=(Renglon,columna),LENGTH=número, -
INITIAL=’texto’,OCCURSS=(numero), -
ATTRB=(atributo1, atributo2,...),
-
COLOR=color, -
HILIGHT=REVERSE

• Los atributos de un campo indican no solamente sus características de


exhibición, sino también la manera de recibir datos desde el teclado.

ATTRB=(atributo1,atributo2...)
Estos son los atributos del campo.
Hay varias características diferentes que se pueden especificar:

La primera característica es la INTENSIDAD, las opciones son:


NORM El campo se exhibe con intensidad Normal.
BRT El campo se exhibe con intensidad Brillante.
DRK El campo se exhibe obscuro (no se ve)

La segunda característica controla lo que el usuario puede hacer desde el teclado,


las opciones son:
ASKIP No se puede teclear en el campo, y si el campo anterior esta
lleno, el cursor brinca sobre este campo, pasando al siguiente
disponible.
33
MANUAL DE CICS
PROT No se puede teclear en el campo, pero el cursor no brinca sobre
este campo si el anterior esta lleno.

UNPROT Si se pueden teclear datos dentro del campo.


NUM Si se pueden teclear datos dentro del campo, pero solo se aceptan números,
el signo de menos, y el punto decimal.

La tercera característica controla la etiqueta de “Datos modificados”. Si un dato


cambia en la pantalla, queda listo para enviarse al programa, si no cambia; no se
envía. La opción es:
FSET Activa la etiqueta de “Datos Modificados”. Esto provoca que el campo se
envíe al programa aunque no se haya modificado. Si no se
especifica FSET, entonces el campo se envía al programa
solamente cuando el usuario lo modifique.

La Cuarta característica, que se especifica como parte de los atributos, indica que
este es el campo donde se posicionara el cursor. La opción es:
IC Pone el cursor en la primera posición del campo, un solo campo es el que
puede tener el cursor, por lo tanto, si se pone IC en varios
campos, el cursor se posicionara en el ultimo.

Si no se especifica el parámetro ATTRIB, entonces el campo tendrá características


ASKIP, NORM, por default, no tendrá FSET ni IC.

Macro DFHMDF de BMS (3)


Nombre de Campo DFHMDF POS=(Renglon,columna),LENGTH=número, -
INITIAL=’texto’,OCCURSS=(numero), -
ATTRB=(atributo1, atributo2,...),
-
COLOR=color, -
HILIGHT=REVERSE

Algunas terminales tienen pantalla de color, por lo tanto se pueden exhibir los
renglones de datos de algún color en especial.

COLOR=color
Indica cual será el color de los caracteres del campo, las opciones son:
WHITE Color blanco
BLUE Color azul
RED Color rojo
PINK Color rosa
GREEN Color verde
TURQUOISE Color turquesa
YELLOW Color amarillo
34
MANUAL DE CICS

Este parámetro solo funciona en caso de que la terminal tenga pantalla de color,
en otro caso; se ignora.

OCCURSS=número
Por medio de esta opción, se pueden declarar varios campos con una sola
definición, siempre y cuando, todos los campos tengan las mismas características,
y se encuentren adyacentes. Entonces, si se especifica un campo de longitud 10 en
la posición (4,1), ASKIP, NORM y OCCURSS=3, se tendrán 3 campos de longitud 10,
ASKIP y NORM en las posiciones (4,1), (4,12) y (4,23).

• La opción HILIGTH=REVERSE se puede usar con terminales que no tengan


color.

HILIGTH=REVERSE
Usando esta opción, se puede destacar un campo, invirtiendo el display de letras
claras sobre fondo obscuro convirtiéndolo a letras obscuras sobre fondo claro.

Una vez creado el Mapset:

1. Se declara como parte de los recursos del sistema.


2. Se ensambla para generar el mapa físico y el mapa simbólico
3. Se incluye el mapa simbólico dentro del programa de aplicación con COPY

Macro DFHMDF de BMS (4)


Nombre de Campo DFHMDF POS=(Renglon,columna),LENGTH=número, -
INITIAL=’texto’,OCCURSS=(número), -
ATTRB=(atributo1, atributo2,...),
-
COLOR=color, -
HILIGHT=REVERSE

Ejemplo: crear las macros para definición del mapa de la pantalla de menú del
ejemplo. (Pág. 37)

PRINT NOGEN
*-------------------------
* DESCRIPCION DEL MAPSET
*-------------------------
BE00MS DFHMSD TYPE=&SYSPARM,MODE=INOUT,LANG=COBOL,TERM=3270, X
STORAGE=AUTO,CTRL=(FREEKB,FRSET),TIOAPFX=YES,EXTATT=YES
*----------------------

35
MANUAL DE CICS
* DESCRIPCION DEL MAPA
*----------------------
BE00M01 DFHMDI LINE=01,COLUMN=01,SIZE=(24,80)
*------------------------------------
* DESCRIPCION DE LOS CAMPOS DEL MAPA
*------------------------------------
DFHMDF POS=(01,30),LENGTH=17,ATTRB=ASKIP, X
COLOR=WHITE, X
HILIGHT=REVERSE, X
INITIAL='MENU DE OPCIONES'
DFHMDF POS=(01,48),LENGTH=01,ATTRB=ASKIP
DFHMDF POS=(02,01),LENGTH=08,ATTRB=ASKIP, X
COLOR=YELLOW, X
INITIAL='FECHA : '
FECHA DFHMDF POS=(02,08),LENGTH=10,ATTRB=ASKIP, X
COLOR=WHITE
DFHMDF POS=(02,19),LENGTH=01,ATTRB=ASKIP
DFHMDF POS=(02,61),LENGTH=07,ATTRB=ASKIP, X
COLOR=YELLOW, X
INITIAL='HORA : '
HORA DFHMDF POS=(02,70),LENGTH=08,ATTRB=ASKIP,COLOR=WHITE X
DFHMDF POS=(05,25),LENGTH=12,ATTRB=ASKIP,COLOR=TURQUOISE X
INITIAL='<1> CONSULTA'
DFHMDF POS=(07,25),LENGTH=08,ATTRB=ASKIP,COLOR=TURQUOISE, X
INITIAL='<2> BAJA'
DFHMDF POS=(09,25),LENGTH=08,ATTRB=ASKIP,COLOR=TURQUOISE, X
INITIAL='<3> ALTA'
DFHMDF POS=(11,25),LENGTH=10,ATTRB=ASKIP,COLOR=TURQUOISE, X
INITIAL='4. CAMBIO'
DFHMDF POS=(10,30),LENGTH=06,ATTRB=ASKIP,COLOR=GREEN, X
INITIAL='OPCION '
OPCION DFHMDF POS=(10,37),LENGTH=01,ATTRB=(IC,NUM,FSET)
DFHMDF POS=(10,39),LENGTH=01,ATTRB=ASKIP
DFHMDF POS=(12,05),LENGTH=11,ATTRB=ASKIP,COLOR=GREEN, X
INITIAL='<Esc> Terminar <Enter> Acepta Opción '
* TERMINA DESCRIPCION DEL MAPSET
DFHMSD TYPE=FINAL
END

Macro DFHMDI de BMS


Nombre de Mapa DFHMDI
SIZE=(Renglon,Columna), -
CTRL=(Control1,Control2...)

En el ejemplo anterior vemos no solamente la descripción de los campos con sus


DFHMDF sino que también se puede observar la definición del mapa con la macro
DFHMDI

La macro DFHMDI se usa para definir mapas dentro de un MAPSET.

Los elementos dentro de esta macro son:

36
MANUAL DE CICS
Nombre de mapa
Este es el nombre del mapa que se utilizara cuando se ejecute un
comando CICS para enviar o recibir un mapa, como los nombres de
campo, debe empezar con letra y no ser mayor de 7 caracteres.

DFHMDI
Este es el identificador de la macro, es obligatorio e indica que se va a
empezar un nuevo mapa.

SIZE=(Renglon,Columna)
Este parámetro indica el tamaño del mapa, el BMS permite que una
pantalla pueda estar formada de varios mapas, y cada mapa puede ser
de diferente tamaño, en este caso el mapa es del tamaño de la
pantalla estándar (24 Renglones, 80 columnas).

CTRL=(Control1,Control2,...)
Este es el parámetro de control de la pantalla y el teclado que se va a
enviar junto con los datos del mapa, puede ser cualquier combinación
de lo siguientes:

PRINT
Especifica que el mapa puede enviarse a una impresora, esto es, si se
piensa que es necesario enviar los datos para impresión, se usa PRINT.

FREEKB (Libera el teclado). El teclado se bloquea automáticamente tan pronto


como el usuario envía datos al procesador, permanece bloqueado
hasta que alguna transacción lo libera o hasta que el usuario oprime la
tecla <RESET>. Generalmente se especifica FREEKB para mantener
liberado el teclado.

ALARM
Este parámetro hace que suene la alarma audible de la terminal.(Este
parámetro solo funciona en caso de que la terminal tenga alarma
audible, en otro caso, se ignora).

Macro DFHMSD de BMS


Nombre de mapset DFHMSD
TYPE=Tipo,MODE=Modo,LANG=COBOL,STORAGE=AUTO, -
TIOAFPX=YES,CTRL=(Control1,Control2)

• Un MAPSET puede contener varios mapas y al ensamblarse, se generan varios


MAPAS SIMBOLICOS , Uno por cada mapa declarado, aunque en nuestro caso,
37
MANUAL DE CICS
nuestro MAPSET contiene un solo mapa. Para definir un MAPSET, se usa la
macro DFHMSD:

Nombre de mapset
Este es el nombre del conjunto de mapas, se manejara dentro del
programa para indicar de donde provienen los mapas que se utilizaran,
deberá estar declarado en la definición de recursos del sistema, y el
nombre del mapset deberá empezar con letra y tener de 1 a 7
caracteres de longitud.
DFHMSD
Este es el identificador de la Macro, indica que empieza la definición de
un Mapset.
TYPE=tipo
TYPE gobierna el resultado del proceso de ensamble, que produce un
mapa fisico o un mapa simbólico según el tipo indicado, primero se
ensambla con TYPE=MAP, y se produce un mapa fisico que CICS usa
en el proceso, después se ensambla con TYPE=DSECT, y se produce un
mapa simbólico en lenguaje COBOL que se almacena en la biblioteca
de COPY para incluirlo en el programa de aplicación con una orden
COPY.
MODE=modo
El modo indica si el mapa se usara únicamente para entrada MODE=IN,
únicamente para salida MODE=OUT, o para ambas MODE=INOUT.
LANG=COBOL
Indica el lenguaje de la estructura del mapa simbólico (DSECT
Structure) que se copiara en el programa de aplicación, en este caso,
COBOL.
STORAGE=AUTO
Se usa para impedir que las definiciones del mapa simbólico se
encimen una sobre otra con redefiniciones del primer mapa, si se van a
usar varios mapas al mismo tiempo dentro de un programa de
aplicación, se omite STORAGE=AUTO.
CTRL=(Control1,Control2,...)
Este parámetro tiene el mismo significado que en la macro DFHMDI, la
diferencia es que si se pone en la DFHMSD afecta a todos los mapas
del Mapset que no tengan CTRL en su propia DFHMDI.
TIOAPFX=YES
Este parámetro se usa siempre en programas, y genera los doce
primeros caracteres de control del mapa simbólico.
DFHMSD TYPE=FINAL
END
Para terminar la definición de un MAPSET, se usa DFHMSD seguida de la
instrucción de ensamblador END.

38
MANUAL DE CICS

Diseño de una aplicación en CICS


• La primera etapa en el diseño de una aplicación, es describir de una manera
sistemática las operaciones que deberá ejecutar esta.

Por ejemplo:

• Exhibir un registro de empleado, dado su numero de empleado


• Aumentar nuevos registros de empleado.
• Modificación de registros ya existentes (Localizados por numero de
empleado).
• Eliminar registros de empleado (Localizados por numero de
empleado).

Las transacciones se ejecutaran por medio de terminales típicas (3270) y se


tomara en consideración el hecho de que varias veces, distintas terminales
intentaran tener acceso a los recursos del sistema y sus datos.

DISEÑO DE LA INTERFACE CON EL USUARIO

Para definir la comunicación con el usuario, observemos la transacción que el


usuario desea ejecutar, y determinar que es lo que se debe presentar en la
pantalla, mientras se efectúa la transacción.

Antes de ejecutar alguna de las transacciones definidas, seria conveniente


presentar un menú para que el operador de la terminal pueda seleccionar la
transacción que desea llevar a cabo, entonces necesitamos decidir:

• Como presentar las opciones ante el operador


• Como seleccionara este alguna de las opciones
• Cual es el resultado de la selección
• Que hacer si el usuario comente algún error.

La presentación de las opciones es muy sencilla, pues solo requiere exhibir en la


pantalla los nombres de las transacciones y una letra o numero de acceso para
cada una de ellas.
El operador necesita meter muy poca información para seleccionar una opción de
un menú, en este caso únicamente la identificación de la transacción que puede
ser una letra o un numero.
El resultado de la selección será la ejecución de la transacción solicitada

SELECCIÓN DEL LENGUAJE DE PROGRAMACION.

Existe la posibilidad de utilizar diferentes lenguajes para programar la aplicación,


pues CICS puede manejarse desde diferentes plataformas, los lenguajes más
usuales son COBOL, PLI, C.

39
MANUAL DE CICS
En nuestro caso, utilizaremos el COBOL, debido a su capacidad de manejar
archivos, tablas de DB2, y estructuras de datos.

Diseño de una aplicación en CICS


Imaginemos que el usuario desea consultar el registro de un empleado; para esto:

• Enciende la terminal.
• Se identifica ante el sistema (SIGN ON).
• Limpia la pantalla (CLEAR).
• Teclea el nombre de la transacción de menú, que podría ser BE00.
• BE00 es, en este caso, el identificador de la transacción que necesita el CICS
para determinar que programa debe correr.
• Oprime la tecla enviar, y el CICS ejecuta la transacción de MENU.

TRANSACCION DE MENU

Para hacer la pantalla sencilla de entender para el usuario, debemos indicarle el


significado de cada campo: por ejemplo:

MENU DE OPCIONES
Fecha 25/05/2000 Hora 12:00

<1> CONSULTA
<2> BAJAS
<3> ALTAS
<4> MODIFICACIONES

Opción _

<Esc> Terminar <Enter> Acepta Opción

Si la solicitud no es correcta, debemos poner un mensaje que se lo indique al


usuario.
40
MANUAL DE CICS
En realidad, en el caso de la transacción de menú, pocas cosa pueden fallar de
todas maneras, debemos considerar el caso de que ocurra algún error, por
ejemplo, que el usuario indique una opción no prevista, o que el operador no tenga
la autoridad suficiente para ejecutar alguna transacción.

Diseño de una aplicación en CICS

TRANSACCION DE CONSULTA

La transacción de consulta, por su parte, debe dar oportunidad al usuario de


teclear él numero de clave del empleado, si es una clave aceptable, buscar en el
archivo de empleados la clave correspondiente, si existen datos para esta clave,
exhibirlos en la pantalla y, dar oportunidad de solicitar otra consulta.

CONSULTA DE EMPLEADOS
Fecha 25/05/2000 Hora 12:00

EMPNO ______

FIRSTNAME ________ LASTNAME _________


INITIAL _ SEX _
BIRTHDATE _______ HIREDATE _________
PHONE ____ JOBCODE ____

SALARY ______

<Esc> Terminar <PF3> Ir al menú


<Enter> Hacer consulta <PF4> Otra consulta

En este caso, adicionalmente a la validación de entrada, se debe considerar el caso


de que la clave consultada no exista en el archivo de empleados, para indicárselo
así al operador.

41
MANUAL DE CICS

Diseño de una aplicación en CICS

TRANSACCION DE ALTAS

La transacción de altas debe presentar una pantalla capaz de recibir los datos de
un empleado nuevo, a continuación validar que la información tecleada sea
correcta, y posteriormente enviarla al archivo de empleados como un nuevo
registro.

ALTA DE EMPLEADOS
Fecha 26/05/2000 Hora 12:00

EMPNO ______

FIRSTNAME ________ LASTNAME _________


INITIAL _ SEX _
BIRTHDATE _______ HIREDATE _________
PHONE ____ JOBCODE ____

SALARY ______

<Enter> Valida datos <PF4> Otra Alta


<PF3> Ir al menú <PF5> Confirma alta

Aquí en caso necesario, se debe indicar al operador que la clave de empleado debe
ser un numero mayor que cero, que ningún campo debe estar vacío, que las
fechas contengan información valida, que el campo de sexo sea M o F, que el
42
MANUAL DE CICS
salario no sea 0 o mayor de 99999, es decir, se requiere validar los datos, para eso
se asigna una tecla especial (Enter).

Diseño de una aplicación en CICS


TRANSACCION DE CAMBIOS

La transacción de cambios, debe permitir al usuario, teclear la clave del empleado,


en caso de que sea una clave aceptable, buscarla en el archivo de empleados, si se
localizan los datos actuales del empleado, se exhiben en la pantalla para que el
usuario pueda modificarlos, una vez modificados, se deben revisar para ver si
cumplen con los requisitos de entrada, en caso de que así sea, se informa al
usuario que puede enviar los datos modificados al archivo de empleados.

CAMBIOS AL ARCHIVO DE EMPLEADOS


Fecha 26/05/2000 Hora 12:00

EMPNO ______

FIRSTNAME ________ LASTNAME _________


INITIAL _ SEX _
BIRTHDATE _______ HIREDATE _________
PHONE ____ JOBCODE ____

SALARY ______

<Enter> Valida datos <PF4> Otro Cambio


<PF3> Ir al menú <PF5> Confirma
Cambios

43
MANUAL DE CICS

Antes de aceptar un cambio, debe validarse la información de la misma manera


que se hizo con la transacción de altas.
Los mensajes de error indicaran si la clave no es aceptable, si no existen datos
para esa clave en el archivo de empleados, o si se intenta enviar datos que no han
sido validados. Al terminar, debe indicarse al usuario si los cambios se efectuaron o
no correctamente.

Diseño de una aplicación en CICS


TRANSACCION DE BAJAS

La transacción de bajas debe solicitar la clave del empleado que se va a dar de


baja, validar el dato, solicitar la información al archivo de empleados, exhibirla,
solicitar la confirmación de la baja, y ejecutarla en el caso indicado.

BAJAS DEL ARCHIVO DE EMPLEADOS


Fecha 26/05/2000 Hora 12:00

EMPNO ______

FIRSTNAME ________ LASTNAME _________


INITIAL _ SEX _
BIRTHDATE _______ HIREDATE _________
PHONE ____ JOBCODE ____

SALARY ______

<Enter> Valida datos <PF4> Otra Baja


<PF3> Ir al menú <PF5> Confirma Baja

44
MANUAL DE CICS
Adicionalmente a los mensajes de error, se debe informar al usuario si la baja se
efectúo o no correctamente.

PROGRAMACION DE LAS APLICACIONES.

Una vez establecidas las condiciones de diseño, la interface con el usuario,


debemos programar la aplicación usando el lenguaje de programación, para esto
existen dos enfoques de operación, uno llamado sistema conversacional, donde el
programa entra en una conversación con el usuario, permitiendo el acceso a los
recursos del sistema, mientras se ejecuta el proceso, y otro llamado
Pseudoconversacional, en el cual, un conjunto de transacciones no-
conversacionales dan al usuario la apariencia de una sola transacción
conversacional, en este caso, los recursos del sistema se usan brevemente, y
después se liberan mientras el usuario observa sus resultados en la pantalla y
decide la siguiente operación que desea ejecutar.

Una aplicación escrita para CICS no es muy diferente de una aplicación escrita para
BATCH, por ejemplo los pasos típicos para una aplicación BATCH Tal como se
vieron en los apuntes de COBOL son:

1. Inicializar la corrida completa, poner contadores en cero, abrir los archivos,


Leer primera entrada
2. Validar los datos de entrada.
3. Procesar los datos.
4. Imprimir los resultados. Se repite hasta el final de los
datos
5. Inicializar para la siguiente entrada.
6. Leer la entrada.
7. Regresar al paso 2, y repetir hasta que se acaben los datos.
8. Terminar, escribir totales, y cerrar archivos.

Una aplicación CICS, por su parte:

1. Recibe pantalla con datos del usuario


45
MANUAL DE CICS
2. Procesa datos recibidos
3. Envía pantalla con datos procesados al usuario
4. Termina (RETURN)
• El CICS se encarga de repetir la transacción cuando ocurra otra
comunicación de la terminal.
• El CICS transfiere el control a otro programa
• El CICS da por terminada la transacción

Observe que:
• En una transacción Pseudoconversacional, el programa ocupa brevemente los
recursos del sistema, después termina
• El CICS se encarga de posteriormente de continuar o terminar el proceso, según
las opciones de RETURN

Códigos de retorno en EIBRESP


Se reciben en un campo numérico PIC S9(08) COMP

Nº CONDITION DESCRIPCION
00 NORMAL Ejecución correcta de la operación
01 ERROR Error sin clasificación.
02 RDATT El operador oprimió tecla ATTN en lugar de RETURN o RECEIVE
03 WRBRK Operador Interrumpió SEND MAP oprimiendo tecla ATTN .
04 EOF En RECEIVE y terminal 3735 fin archivo.
05 EODS En RECEIVE MAP no se reciben datos.
06 EOC En RECEIVE MAP se recibe End Of Chain.
07 INBFMH Se recibió Function Management Header.
08 ENDINPT Se recibió End Of Input Indicator
09 NONVAL Nombre de Programa no es Valido.
10 NOSTART No Inicializa el Programa de Aplicación.
11 TERMIDERR Nombre de Terminal no Existe en TCT.
12 FILENOTFOUND El Archivo no Existe en la FCT(RESP2=01)
13 NOTFND No existe el Registro (RESP2=80) READ, DELETE, STARTBR
14 DUPREC El Registro ya Existe(WRITE,REWRITE).
15 DUPKEY Varios Registros con la Misma Clave(READ)
16 INVREQ REWRITE sin READ UPDATE –0- READ No esta de acuerdo a FCT
17 IOERR Error de Hardware (Dañado el disco)
18 NOSPACE No hay Espacio en Disco para Nuevos Registros.
19 NOTOPEN Archivo Ocupado Por otra Transacción. o cerrado
20 ENDFILE Fin de Archivo (READNEXT,READPREV).
21 ILLOGIC Error no Catalogado Ver RESP2 Pág. 311.
22 LENGERR Longitud de Registro Diferente de LENGTH.
23 QZERO La QUEUE esta Vacía (READQ TD).
24 SIGNAL Entrada de Control SIGNAL.
25 QBUSY La QUEUE esta ocupada por otro TASK.
46
MANUAL DE CICS
26 ITEMERR Número de ITEM no Grabado al (READQ TS,WRITE TS).
27 PGMIDERR El Programa o el Mapa no esta Declarado en la PPT.
28 TRANSIDERR La Transacción no esta Declarada en la PCT.
29 ENDDATA No hay mas datos para el Task, usando RETRIEVE
30 INVTSREQ No se Localiza.
31 EXPIRED Cuando un Comando Termina su duración, que no se Utiliza.
32 RETPAGE Ocurre Cuándo la Opción SET esta Especificada.
33 RTEFAIL Terminal no se encuentra Instalada, usando ROUTE.
34 RTESOME Terminal no recibe el Mensaje de ROUTE.
35 TSIOERR Error de Entrada/Salida en la TS.
36 MAPFAIL Recibe MAPA Vacío (Operador Oprimió Tecla CLEAR)
37 INVERRTERM Identificador de Terminal no es Valido en ROUTE.
38 INVMPSZ Cuando el MAPA es muy Grande para la Terminal(SEND RECIVE)
39 IGREQID Cuando REQID de SEND MAP es Diferente del REQID anterior.
40 OVERFLOW Los Datos del Mapa no Ajustan en la Página (SEND MAP).
41 INVLDC Es cuando la LDC no esta Incluida en la lista de LDC’s.
42 NOSTG El área Solicitada es Mayor Que el área Disponible.
43 JIDERR Sí el Identificador de JOURNAL no Existe.
44 QIDERR La QUEUE no Existe,(READQ TS).
45 NOJBUFSP Los BUFFER del JOURNAL Están Llenos.
46 DSSTAT El DESTINATION STATUS ha Cambiado (ISSUE RECEIVE).
47 SELNERR Error en la Selección del DESTID (ISSUE QUERY).
48 FUNCERR Error Durante la Ejecución de ISSUE QUERY.
49 UNEXPIN Error Inesperado en ISSUE QUERY o ISSUE RECEIVE
50 NOPASSBKRD No está presente el PASSBOOK en RECEIVE.
51 NOPASSBKWR No está presente el PASSBOOK en SEND.
53 SYSIDERR EL SYSID No está Definido en READ.
54 ISCINVREQ Falla en el Sistema Remoto RESP2=70
55 ENQBUSY El recurso Solicitado no está Disponible en ENQ.
56 ENVDEFERR RETRIEVE especifico una opción que no corresponde a START
57 IGREQCD Se ordeno SEND MAP después de SIGNAL con CHANGE DIRECTION.
58 SESSIONERR Session Invalido en ALLOCATE.
59 SYSBUSY No hay SESSION Disponible en ALLOCATE MAPPED.
60 SESSBUSY La session no se puede servir Inmediatamente en ALLOCATE.
61 NOTALLOC RECEIVE se envió por una Transacción generada por START
62 CBIDERR PROFILE de ALLOCATE no Existe.
63 INVEXITREQ No Localizada.
64 INVPARTNSET La Partición no es Valida en SEND PARTNSET.
65 INVPARTN La Partición no esta Definida en RECEIVE MAP o SEND MAP.
66 PARTNFAIL Operador insiste en Enviar a una Partición Invalida RECIVE.
69 USERIDERR Usuario Invalido en SIGNON.
70 NOTAUTH Usuario No Autorizado a esta Función.
72 SUPPRESSED Usuario no añadió Registro a la Tabla con (WRITE UMT).
81 TERMERR Error de Terminal.
82 ROLLEDBACK El Programa no Puede Actualizar y hace el ROLLBACK.
84 DISABLED El Archivo esta Deshabilitado (READ, WRITE).
87 OPENERR Error cuándo se ABRE, CIERRA o se ESRCIBE la Rutina DUMP.
94 LOADING La Tabla Solicitada por READ UPDATE se esta Cargando.

47
MANUAL DE CICS

48

Vous aimerez peut-être aussi