59
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. 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. 1 SISTEMA OPERATIVO C I C S DATOS DATOS

2 Manual Cics

Embed Size (px)

Citation preview

Page 1: 2 Manual Cics

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.

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

1

SISTEMA OPERATIVO

C I C S

DATOS

DATOS

Page 2: 2 Manual Cics

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

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.

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.

2

C I C S

C I

TERMINAL 1

TERMINAL 2

PROG 2

PROG 1

DATOS 2

DATOS 1

Page 3: 2 Manual Cics

MANUAL DE CICS

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.

Figura 3

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:

3

SISTEMAOPERATIVO

JOB DE TSO

Region de CICS

TaskDeCICS

terminal

D a t o sterminal

D A T O S

Page 4: 2 Manual Cics

MANUAL DE CICS

º 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

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

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.

4

Terminal envía datos

Terminal recibe datos

Recibe mapa

Envía mapa

Procesa Información DATOS

Programa recibe y envía datos

Page 5: 2 Manual Cics

MANUAL DE CICS

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

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.

5

Page 6: 2 Manual Cics

MANUAL DE CICS

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

NEW PASSWORD:

Figura 4. Pantalla de la transacción CESN

6

Page 7: 2 Manual Cics

MANUAL DE CICS

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 P C T TABLA P P T TABLA F C T

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:

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.

7

Page 8: 2 Manual Cics

MANUAL DE CICS

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.

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

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)

8

FCT

ARCHIVO1ARCHIVO2. . .ARCHIVOn

PCT

TRANSACC1-PROG1

TRANSACC2-PROG2

PPT

PROG1PROG2. . .

Page 9: 2 Manual Cics

MANUAL DE CICS MAPSET (MAPSET1) ERASE CURSOREND-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 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:

9

Page 10: 2 Manual Cics

MANUAL DE CICS

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 datos5. 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 usuario2. Procesa datos recibidos3. Envía pantalla con datos ya procesados para que el usuario pueda verlos4. 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 programaO 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 [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)

10

Page 11: 2 Manual Cics

MANUAL DE CICS

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 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)

11

Page 12: 2 Manual Cics

MANUAL DE CICS

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

12

Page 13: 2 Manual Cics

MANUAL DE CICS 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

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

13

Page 14: 2 Manual Cics

MANUAL DE CICS

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) UPDATEEND-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)

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

14

Page 15: 2 Manual Cics

MANUAL DE CICS

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) KEYLENGTH (WX-LON-CLAVE) UPDATEEND-EXEC

EXEC CICS DELETE FILE (‘EMPLEADO’)END-EXECObserve 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.

15

Page 16: 2 Manual Cics

MANUAL DE 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.

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)

16

Transacción BE00

Otra instancia de

la transacción

BE00

TS

Transacción

BE01

Page 17: 2 Manual Cics

MANUAL DE CICS

[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 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

17

Page 18: 2 Manual Cics

MANUAL DE CICS

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

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.

18

Page 19: 2 Manual Cics

MANUAL DE CICS

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 CONTINUEELSE MOVE ‘ERROR AL BORRAR LA COLA ‘ TO WL-MENSAJEEND-IF

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.

19

Page 20: 2 Manual Cics

MANUAL DE CICS

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

EXEC CICS READPREV FILE (‘EMPLEADO’) INTO (RG-EMPLEADO) RIDFLD (RD-EMPNO) END-EXEC

EXEC CICS READNEXT FILE (‘EMPLEADO’) INTO (RG-EMPLEADO) RIDFLD (RD-EMPNO) END-EXEC

READNEXT y READPREV siempre se usan en combinación con STARTBRSTARTBR FILE (Nombre del archivo) RIDFLD (Nombre del área de clave) KEYLENGTH (Longitud del área de clave) [REQID (Numero de la revisión) ]

20

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

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

Archivo1Reg 1Reg 2Reg 3

.

.

.

Reg n

READPREV

READNEXT

STARTBR

Page 21: 2 Manual Cics

MANUAL DE CICS

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’) 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.

21

Page 22: 2 Manual Cics

MANUAL DE CICS

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

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-MENSAJEEND-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-USUARIOIF USUARIO-EXISTE THEN CONTINUEELSE MOVE ‘ ERROR EN NOMBRE DE USUARIO ‘ TO WL-MENSAJEEND-IF

Observe que:

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

22

Page 23: 2 Manual Cics

MANUAL DE CICS

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. 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 ERASEEND-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-MENSAJEEND-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.23

Page 24: 2 Manual Cics

MANUAL DE CICS

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.

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-TRANSIDMOVE DFHCOMMAREA TO WX-COMMAREAMOVE 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 RETURNEND-EXEC

24

Page 25: 2 Manual Cics

MANUAL DE CICS

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

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-PROGRAMMOVE DFHCOMMAREA TO WX-COMMAREAMOVE 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).

25

Page 26: 2 Manual Cics

MANUAL DE CICS

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.

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

26

Page 27: 2 Manual Cics

MANUAL DE CICS

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 1 2 5 12

Renglones 1 -> 2 -> 3 ->

5 -> 7 ->

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

27

CESN – SIGNON – Enter Userid and Password

USERID: _

PASSWORD:

NEW PASSWORD:

Page 28: 2 Manual Cics

MANUAL DE CICS

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.

TERMINALES Columnas 1 2 5 12

Renglones 1 -> 2 -> 3 ->

5 -> 7 ->

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

28

CESN – SIGNON – Enter Userid and Password

USERID:X___________________X_

PASSWORD: STOPPER Tercer campo NEW PASSWORD:

Page 29: 2 Manual Cics

MANUAL DE CICS

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.

TERMINALES Columnas 1 2 5 12

Renglones 1 -> 2 -> 3 ->

5 -> 7 ->

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

High intensity BrillanteNormal intensity NormalDark Invisible (Letras del mismo color que el fondo)Inverse Fondo claro, letras obscurasColor siete colores básicos

29

CESN – SIGNON – Enter Userid and Password

USERID:X___________________X_

PASSWORD: STOPPER Tercer campo NEW PASSWORD:

Page 30: 2 Manual Cics

MANUAL DE CICS

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.

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.

30

Page 31: 2 Manual Cics

MANUAL DE CICS

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

31

Page 32: 2 Manual Cics

MANUAL DE CICS

Los elementos de la macro tienen los siguientes significados.

Nombre de CampoEste 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.

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

POS= (Renglon,Columna)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=numeroEsta 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.

32

Page 33: 2 Manual Cics

MANUAL DE CICS

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.

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

33

Page 34: 2 Manual Cics

MANUAL DE CICS

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

COLOR=colorIndica cual será el color de los caracteres del campo, las opciones son:

WHITE Color blancoBLUE Color azulRED Color rojoPINK Color rosaGREEN Color verdeTURQUOISE Color turquesaYELLOW Color amarillo

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

OCCURSS=númeroPor 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=REVERSEUsando 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ólico3. 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,...), -

34

Page 35: 2 Manual Cics

MANUAL DE CICS

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*----------------------* 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...)

35

Page 36: 2 Manual Cics

MANUAL DE CICS

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:

Nombre de mapaEste 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.

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

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

ALARMEste 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).

36

Page 37: 2 Manual Cics

MANUAL DE CICS

Macro DFHMSD de BMSNombre de mapset DFHMSDTYPE=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, nuestro MAPSET contiene un solo mapa. Para definir un MAPSET, se usa la macro DFHMSD:

Nombre de mapsetEste 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.

DFHMSDEste 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=modoEl modo indica si el mapa se usara únicamente para entrada MODE=IN, únicamente para salida MODE=OUT, o para ambas MODE=INOUT.

LANG=COBOLIndica 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=AUTOSe 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=YESEste parámetro se usa siempre en programas, y genera los doce primeros caracteres de control del mapa simbólico.

DFHMSD TYPE=FINALEND

37

Page 38: 2 Manual Cics

MANUAL DE CICS

Para terminar la definición de un MAPSET, se usa DFHMSD seguida de la instrucción de ensamblador END.

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

38

Page 39: 2 Manual Cics

MANUAL DE CICS

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

39

MENU DE OPCIONESFecha 25/05/2000 Hora 12:00

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

Opción _

<Esc> Terminar <Enter> Acepta Opción

Page 40: 2 Manual Cics

MANUAL DE CICS

Si la solicitud no es correcta, debemos poner un mensaje que se lo indique al usuario.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.

40

CONSULTA DE EMPLEADOSFecha 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

Page 41: 2 Manual Cics

MANUAL DE CICS

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.

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.

41

ALTA DE EMPLEADOSFecha 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

Page 42: 2 Manual Cics

MANUAL DE CICS

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

42

CAMBIOS AL ARCHIVO DE EMPLEADOSFecha 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

Page 43: 2 Manual Cics

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.

43

BAJAS DEL ARCHIVO DE EMPLEADOSFecha 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

Page 44: 2 Manual Cics

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

44

Page 45: 2 Manual Cics

MANUAL DE CICS

Una aplicación CICS, por su parte:

1. Recibe pantalla con datos del usuario2. Procesa datos recibidos3. Envía pantalla con datos procesados al usuario4. 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 EIBRESPSe reciben en un campo numérico PIC S9(08) COMP

Nº CONDITION DESCRIPCION00 NORMAL Ejecución correcta de la operación01 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 Indicator09 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, STARTBR14 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 FCT17 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 cerrado20 ENDFILE Fin de Archivo (READNEXT,READPREV).21 ILLOGIC Error no Catalogado Ver RESP2 Pág. 311.

45

Page 46: 2 Manual Cics

MANUAL DE CICS22 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.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 RETRIEVE30 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 RECEIVE50 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=7055 ENQBUSY El recurso Solicitado no está Disponible en ENQ.56 ENVDEFERR RETRIEVE especifico una opción que no corresponde a START57 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 START62 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.

46

Page 47: 2 Manual Cics

MANUAL DE CICS

47