Está en la página 1de 227

Conceptos Básicos de

CICS
Contenido

 Objetivo
 Audiencia
 Requisitos
 Duración
 Módulos

2
Objetivo

 Al finalizar el curso el participante

 Ampliará sus conocimientos en lo referente a


herramientas de programación, conocerá las
estructuras básicas de programas reentrantes.

 Conocimientos teórico y práctico a nivel básico de


CICS, con el fin de que pueda desempeñarse en
un ambiente más amplio dentro del desarrollo de
sistemas informáticos.

3
 Audiencia
 Líderes, Ingenieros, Analistas y Programadores
que realizarán proyectos de desarrollo ó
mantenimiento de Aplicaciones Mainframe IBM
Cobol, ó CICS.
 Pre-requisitos
 Cobol II Nivel Intermedio Obligatorio.
 MVS Nivel Básico Obligatorio.
 WorkBench Nivel Básico Deseable.
 Duración
 32 Horas.
4
Módulos
I. Introducción
II. Conceptos de Programación
III. BMS, Manejo de Mapas (Pantallas)
IV. Comandos de Programación
V. Modularidad y Estructuras “Cliente-
Servidor” en Programas CICS
VI. Tipos de Arquitectura de CICS
VII. Ambientación de Aplicaciones en CICS
VIII.Consideraciones para el Rendimiento de
las Aplicaciones (Performance)

5
Modulo I:

INTRODUCCION
Sistemas Batch

 Objetivos y Características.
 Alcanzar una alta utilización de la capacidad de proceso
del CPU.
 El tiempo de respuesta es del orden de horas (para la
entrega del producto final).
 El arribo de los trabajos es bajo una ejecución planeada
y calendarizada.
 El proceso maneja lotes de datos en secuencia.
 El usuario debe de esperar el producto final (Reporte,
Archivo, etc), para poder revisarlo y si se encuentran
errores, en la mayoría de los casos se debe de
reprocesar.

7
Sistemas Línea
 Objetivos y Características.
 Alcanzar una eficiente utilización de recursos de
computo (memoria, disco, etc).
 Acepta diversos requerimientos a un tiempo dado, en
forma aleatoria.
 Proporciona acceso a los datos, de tal forma que estos
pueden ser usados por varios tipos de medios
(Aplicaciones en Línea, Procesos Batch, Queries, etc).
 El tiempo de respuesta es del orden de segundos ó
menor.

8
Sistemas Línea

 Objetivos y Características.
 Permite revisar al momento el producto final, permitiendo
modificar este si existieran errores.
 Programación reentrante, permite a muchas
transacciones usar el mismo código de programa, en
forma concurrente.
 Ubicación dinámica de memoria, manejo de Pool’s
generales, usa la misma memoria para diferentes
propósitos por diferentes Transacciones.

9
Qué es CICS?
Customer Information Control System
 Es una herramienta que controla y atiende
aplicaciones que interactúan en tiempo real con
usuarios, las cuales pueden tener accesos
tradicionales de información (archivos, base de
datos). Actúa como interfaz entre el Sistema
Operativo y los programas Aplicativos.
 Proporciona:
 La mayoría de las funciones estándar, requeridas por los
programas aplicativos, necesarias para la comunicación
con terminales locales o remotas, así como diferentes
subsistemas.

10
Qué es CICS?
Customer Information Control System

 El control de programas aplicativos,ejecutándose


concurrentemente y sirviendo a múltiples usuarios,
administra los recursos en un ambiente multitareas.
 Capacidad de interactuar con base de datos del tipo
DL/I, DATACOM, IMS ó DB2.
 Administra la memoria y es una tarea que opera dentro
de una región/partición del Sistema Operativo.

11
Qué es CICS?
Customer Information Control System

 CICS es un sistema de control que puede manejar


DB/DC, de propósito general, así mismo puede ser
configurado para dar soporte a redes con una
amplia variedad de terminales y subsistemas.

12
Ambiente de Software prevaleciente
en una Aplicación CICS

Sistema operativo

Métodos Servicios Métodos


De acceso Del De acceso
B.D. Sistema Telecomu-
Funcio- nicación
Funcio-
Nes de Funciones
Nes de
Métodos Manejo De
Comuni-
De acceso De Monitoreo
cación Termina
Estándar Datos
Servicios de les
Los programas
Aplicativos
Redes

Datos
Programas
Aplicativos

13
Desarrollo de Aplicaciones
 RápidaImplementación/Modificación de
Aplicaciones en Línea

 Uso de lenguajes comunes de programación, como


Cobol, PL/I, Assembler y lenguaje C.
 Permite que el programador se concentre solo en el
desarrollo de la aplicación, sin preocuparse por el control
de la red.
 Uso de comandos de programación, con sintaxis fácil de
enteder (palabras en ingles) y programar.

14
Desarrollo de Aplicaciones
 RápidaImplementación/Modificación de
Aplicaciones en Línea

 Fácil de diseñar con los requerimientos particulares de la


instalación.
 Permite la modularidad de las aplicaciones.
 Configuración de terminales.
 Organización de archivos y transacciones.
 Programas relacionados a transacciones.

15
Desarrollo de Aplicaciones
 Uso de tablas de control para la definición
del medio ambiente (entorno) en donde
residirá la aplicación.
 Program Control Table (PCT).
 Program Process Table (PPT).
 Terminal Control Table (TCT).
 File Control Table (FCT).
 System Recovery Table (SRT).
 Journal Control Table (JCT).
 System Initialization Table (SIT).

 Estas tablas están funcionalmente asociadas con los


módulos de administración de CICS.
16
Desarrollo de Aplicaciones
 Usode Técnicas que permitan Ajustar
Dinámicamente las Cargas de Trabajo.
 Multitasking Dinámico.
 Ubicación Dinámica de memoria.

 Tiempo de Respuesta
 Permite que el operador de una terminal sea productivo
tanto como sea posible.
 Uso de técnicas de procesamiento diferentes a las de un
ambiente Batch.
 Tiempo de respuesta promedio de 3 a 5 segundos.

17
Desarrollo de Aplicaciones
 Acceso a Información.
 Métodos de acceso estándar, Index Sequential Access
Method (ISAM), Dynamic Access Method (DAM),
Sequential Access Method (SAM), Virtual Storage
Access Method (VSAM).
 Métodos de acceso a bases de datos.

 Seguridad e Integridad de la Información.


 Sign-on.
 Password.
 Procedimientos de Recuperación.

18
Desarrollo de Aplicaciones
 Mantenimiento Reducido
El mantenimiento reducido de una aplicación
desarrollada en CICS, es resultado de:

 La correcta modularidad realizada en el diseño de la


aplicación.
 El correcto uso de comandos de programación, así
como de la estructuración del programa aplicativo.
 El uso correcto de los recursos del sistema (archivos,
memoria, disco, base de datos, comunicaciones, etc.).

19
Desarrollo de Aplicaciones
 Funciones que realiza el CICS

Arranque y
desconexión del
sistema
C
I Transferencia de
C control
S
Acceso a Bases de
Datos

Gestión de Errores

Gestión de la
Conversacionalidad 20
Desarrollo de Aplicaciones
 Arranque y desconexión del sistema
Esta función vincula las tareas a realizar al comienzo y final
de la sesión del día.

Estas tareas son :

•Abrir y cerrar archivos


•Activar y desactivar las líneas de comunicación

Es desde CICS donde se abren y cierran los archivos y no


desde el código del programa de aplicación.

21
Desarrollo de Aplicaciones
 Transferencia de Control
CICS gestiona la transferencia del control entre diferentes
programas de aplicación en el entorno online.

Por ejemplo:
•Transferir el control a una rutina

En un programa online multimodular, las sentencias CALL


que transfieren el control son sustituidas automáticamente
por comandos CICS.

22
Desarrollo de Aplicaciones
 Acceso a Base de Datos
En CICS se pueden manipular bases de datos, accediendo
a las mismas, ya sea para realizar consultas directas,
barrido de las bases de datos, actualizar su contenido,
insertar nuevos registros o borrarlos físicamente.

23
Desarrollo de Aplicaciones
 Gestión de errores
CICS contiene facilidades para capturar el error producido,
terminar la transacción y permitir que las demás
transacciones continúen su proceso.

Esto permite al usuario introducir la transacción de nuevo,


sin que afecte a otros usuarios del sistema.

No es práctico que el programa maneje todos los errores


condicionales que pueden surgir en un entorno online.

24
Desarrollo de Aplicaciones
 Gestión de la conversacionalidad
CICS puede permitir a muchos usuarios conectarse y usar el
sistema online concurrentemente, pero el sistema tiene una
memoria de trabajo limitada.

Hay dos tipos de técnicas de programación:

•Conversacional

•Pseudoconversacional

Que afecta cómo el monitor utiliza memoria principal del


sistema.
25
Desarrollo de Aplicaciones
 Gestión de la conversacionalidad
Programación Conversacional

Técnica que resulta cuando un programa es cargado en


memoria y permanece ahí hasta que el usuario finaliza el
trabajo con el programa.

El programa no es descargado de la memoria cuando no


esta activo.

Los programas conversacionales pueden ser utilizados en


un bajo volumen de situaciones cuando una gestión
eficiente de la memoria no es proporcionada.
26
Desarrollo de Aplicaciones
 Gestión de la conversacionalidad
Programación Pseudconversacional

El programa no gestiona el envío y recepción de manera


continua, sino que realiza desconexiones cada vez que
necesita una respuesta por parte del usuario, suspendiendo
temporalmente la ejecución de la tarea y liberando los
recursos utilizados por la misma.
Este modo requiere una manera especial de codificación de
los programas de aplicación.
Es necesario establecer una serie de ciclos que permiten a
los programas proseguir las tareas a partir del punto en que
se realizó la última desconexión.
27
Elementos de CICS

 Módulos de Control: Son los programas que dan


soporte a las macros y comandos de CICS, estos
programas contienen los llamados al sistema operativo.
 Tablas de Control: Describen el medio ambiente
(entorno) en el que se ejecutará una aplicación.
 Areas de control: Contienen información de la
transacción ó tareas ejecutadas, esta información es
utilizada por el mismo CICS y puede ser utilizada por los
programas aplicativos.
 Programas aplicativos: Son los programas escritos
por los desarrolladores de sistemas, los cuales tienen como
objetivo el satisfacer las necesidades específicas de un área
usuaria.
28
Flujo de una Aplicación Típica
1 Terminal BMS File
Management
16 Formatea Management
Termina Mueve datos
7
Lee en la TIOA Valida que exista Arch. Archivo
Les Envía el mapa a la Solicita un write a Accesa registros
Terminal la terminal
17 6
2 5 15
Task management
Programa Transient data 9
Valida transacción 8 Management Transi-
Crea una tarea Aplicativo
Valida autoridad Encola registros en ent
Asigna prioridad el orden requerido Data
Solicita TCA y TWA Solicita mapin
Solicita un registro
3 Solicita grabar reg
Inicia rastreo
Trace
Program 4 Solicita un dump 10 Management
Management Solicita encolar
datos en T.S. Proporciona
Carga el programa
Solicita un mapout facilidades de
si no es residente
Rastreo
14 11
13
Storage Temporary Stor.
Management Dump Management
Management Escribe el Dump en
12
Proporciona Almacena inf. en
memoria o disco para disco Dump
Memoria dinámica usuarse por otra Identifica el Dump
para el output tarea o transacción

29
Organización, Componentes y Funciones
CICS/VS
SYSTEM ORGANIZATION SYSTEM
MANAGEMENT MONITORING
COMPONENT COMPONENT
TASK MANAGEMENT TRACE MANAGEMENT
STORAGE MANAGEMENT DUMP MANAGEMENT
PROGRAM MANAGEMENT MONITORING FACILITY
EXEC INTERFASE PROGRAM FACILITY ERR. RECOGNITION
USER EXIT MANAGEMENT
TIME MANAGEMENT SYSTEM
DL/1 DB SUPPORT
TD, TS MANAGEMENT
SUPPORT
JOURNAL MANAGEMENT COMPONENT
SYSTEM SYSTEM INITIALIZATION
SYSTEM TERMINATION
RELIABILITY PROG. PREPARATION UTIL.
COMPONENT SYSTEM LOG/JOURNAL UTIL.
SYSTEM RECOVERY MANAGEMENT
DYNAMIC TRANSACTION BACKOUT APPLICATION
TRANSACTION RESTART SERVICE
RETRY PROGRAM
ABNORMAL CONDITION PROGRAM
COMPONENT
PROGRAM ERROR PROGRAM BASIC MAPPING SUPPORT
DATA INTERCHANGE PROG.
SYSTEM EXECUTION DIAGMOSTIC F.
COMMAND INTERPRETER
SERVICE
COMPONENT INTERCOMUNICATION
SIGN-ON/SIGN-OFF
FACILITIES
EXTERNAL SECURITY INTERFASE COMPONENT
MASTER TERMINAL
SUPERVISORY TERMINAL CICS/VS FUNCTION REQUEST
OPERATOR TERMINAL TRANSACTION ROUTING
SYSTEM STATISTICS DISTRIBUTED TRANS. PROC.
DYNAMIC OPEN/CLOSE INTERREGION COMMUNIC. 30
Modulo II:

CONCEPTOS DE
PROGRAMACION
Interfaz de Comandos

 Interfaz entre los programas aplicativos y el CICS.


 La solicitud de servicios se efectúa con comandos
dirigidos a la interfaz.
 Elimina la necesidad de aprender la estructura
interna y la operación de CICS.
 Los comandos proporcionados son estandar para
los lenguajes de programación Cobol, PL1, C y
Assembler.

32
Interfaz de Comandos

Terminal Control
Terminal Program (TCP)

Interfaz de
Comandos

REQUERIMIENTO
Programa DE ESCRITURA A
Aplicativo TERMINAL

CICS

33
Traductor de Comandos

 El Traductor de Comandos se encarga de hacer la


traducción de los comandos CICS al lenguaje
origen del programa aplicativo.
 El resultado de esta traducción incluye los llamados
a los módulos de control de la Interfaz de
Comandos, así como los parámetros requeridos a
estos módulos de control.
 Durante la ejecución del programa aplicativo, la
interfaz de comandos llama a los módulos de
administración de CICS, que correspondan al
comando solicitado.

34
Preparación de un Programa
Programa
A
Fuente

Traductor Listado del Módulo


De Traductor Objeto
Comandos

Programa Listado del


Fuente Encadenador Encadenador
Traducido

Compilador Listado del Módulo


O Compilador De
Ensamblador Carga

35
Características de un programa CICS

 Código “reentrantre”, permite la utilización de


multiples usuarios al mismo código, así como la
inteligencia necesaria para identificar el “estado” de
la Transacción ó el programa en ejecución.
 Pseudo-conversacional.
 CICS copia el área de trabajo por cada tarea
(transacción-programa) ejecutada.
 Se genera un Terminal Control Area (TCA) para
cada tarea (transacción-programa) ejecutada.

36
Características de un programa CICS

CICS
Terminal Terminal
“XXXX” “YYYY”
REQUERIMIENTO REQUERIMIENTO
DE ACTUALIZACION DE BUSQUEDA
DE UN REGISTRO DE UN REGISTRO

Programa
Aplicativo

Area de trabajo Area de trabajo


para la para la
Terminal “XXXX” Terminal “YYYY”

37
Flujo Lógico de un programa
“Reentrante”
Inicio

NO
Estado inicio? Recibe mapa
(1era vez) con peticiones
de usuario Fin
SI

Inicialización Despliega mapa


de variables, mapa Validación de con respuesta
áreas de comuni- teclas de función ó
cación Fin transacción

Despliega mapa Validación de


Inicializado petición Accesos hacia la
(1era VEZ)
Sw-1era VEZ (alta, baja, cambio, Información
Return con apuntador modif. ó confir.)

Fin
38
Formato de los Comandos

COBOL : EXEC CICS function option(argument)


option(argument)
...
END-EXEC

PL/I : EXEC CICS function option(argument)


... ;

ASMBLR: EXEC CICS function option(argument)


...

39
Formato de los Comandos

function : Describe la operación requerida.


READ, SEND, RECEIVE, etc.
option : Describe las opciones ó facilidades
disponibles para cada operación.
GTEQ, RIDFLD, PROGRAM, etc.
argument : Argumento correspondiente para
cada opción de la operación, puede
ser definida como literal ó constante.
PROGRAM (“PROGALTA”)
PROGRAM (WS-NOMBRE)

40
EIB (Execute Interface Block)

 Bloque de Información de Control, correspondiente a la


transacción ó tarea que se esta ejecutando.
 Se crea al momento de iniciarse la transacción ó tarea.
 El traductor de comandos incluye en forma automática una
copia del EIB en el programa (al momento de la
compilación).
 Los programas pueden consultar su contenido, pero es
recomendable no modificarlo.
 Un programa aplicativo, por ejemplo, para identificar el
nombre de la transacción que se esta ejecutando, solo tiene
que hacer referencia al campo de control llamado
“EIBTRNID” (EIB Transaction Identifier).

41
EIB (Execute Interface Block)

EIBTIME La hora en que la tarea fue iniciada.


EIBDATE Fecha en que la tarea fue iniciada.
EIBTRNID Identificación de la transacción.
EIBTASKN Número de la tarea asociada a la transacción.
EIBTRMID Identificación de la terminal.
EIBAID Identificación de la tecla de función pulsada (ENTER, PG1,
ERASE, etc).
EIBPOSN Posición del cursor en la pantalla, al tiempo de entrada de
la transacción.
EIBCALEN Longitud del área de comunicación utilizada para pasar
parámetros entre programas ó transacciones
(COMMAREA).
EIBFN Código de la última función ó comando de CICS realizado.
EIBRESP Código de retorno de la ejecución de una funcion ó
comando de CICS.
42
Byte de AID (Attention Identifier)

 Cuando se envía información de la pantalla hacia un


programa aplicativo, al inicio de este bloque de información
se encuentra un byte que indica la tecla que fue presionada
y que provocó el envío de información.
 A este byte se le conoce con el nombre de “Byte de AID”.
 Las teclas de función, por las cuales podemos solicitar un
envío de información hacia un programa aplicativo son:
 ENTER
 CLEAR
 PF1 A PF24
 PA1, PA2 Y PA3

43
Byte de AID (Attention Identifier)

 El contenido del byte de AID, se puede accesar mediante el


campo “EIBAID” y comparando este campo con los
contenidos de los campos que existen en el copy “DFHAID”,
se puede saber que tecla de función fue pulsada.
 Campos del copy “DFHAID”:
 DFHCLEAR
 DFHENTER
 DFHPA1
 .
 .
 DFHPF23
 DFHPF24

44
HANDLE AID
 Otra forma de identificar la tecla de funcion que se presiono
es utilizando el comando “HANDLE AID”.

 Formato: EXEC CICS HANDLE AID opción (rutina)


opción (rutina)....
END-EXEC.

opción : CLEAR, ENTER, PA1, PA2, PA3, PF1, ...., PF24

rutina : Etiqueta de la rutina a la que se cede el control.

45
CONDICIONES DE EXCEPCION
 Cada vez que se ejecuta un comando, CICS genera una
condición como respuesta, generalmente esta respuesta es
de estatus normal (ok).
 Cuando no es una respuesta normal, se establece una
condición de excepcion.
 Ejemplo:
 Nombre de archivo no reconocido
 El archivo no esta abierto
 Registro duplicado
 Etc.
 El programador es responsable de tener preevisto todas las
condiciones de error (excepcion), que más frecuentemente
pudieran presentarse.

46
CONDICIONES DE EXCEPCION

 ¿Cómo se manipulan las condiciones de


Excepción?

A. Pasar el control a una etiqueta específica del programa.


B. El programa manipula la condición.
C. Dejar que CICS maneje la condición.
D. Mezclar los métodos anteriores.

47
CONDICIONES DE EXCEPCION
A) Pasar el Control a una Etiqueta Específica del
Programa
 CICS cuenta con un comando donde se especifíca la
etiqueta a donde se trasladará el control, al momento
de presentarse una excepcion. Este comando es el
HANDLE CONDITION.
 Se tienen dos modalidades para este comando:
 HANDLE CONDITION opción (etiqueta)
El control pasará a la etiqueta nombrada, hasta que se
presente la excepción descrita en opción.
 HANDLE CONDITION ERROR (etiqueta)
El control pasará a la etiqueta, al momento que se
presente cualquier excepcion en el programa.

48
CONDICIONES DE EXCEPCION
Formato del Comando HANDLE CONDITION
EXEC CICS HANDLE CONDITION
option (label)
[option (label)]
[option (label)]....
END-EXEC.
option : Identifica la excepción a manipular, se puede
especificar hasta 12 en un solo comando:
“DUPREC, MAPFAIL, NOTFND”, etc.
label : Nombre de la rutina en el programa, a donde
se dirigirá en caso de que suceda la
excepción, si se omite CICS efectuará la
acción que tiene como default (WAIT ó
ABEND). 49
CONDICIONES DE EXCEPCION
Ejemplo:
EXEC CICS HANDLE CONDITION
DUPREC (5000-DUPLICADOS)
NOTFND (6000-NO-ENCONTRADO)
END-EXEC

El comando se codifica por lo regular, al inicio del


programa.

Las condiciones de excepción descritas, estan vigentes


hasta que termine la ejecucion del programa aplicativo ó
se ejecute otro comando HANDLE CONDITION, para la
misma condición de excepción.
Actúa como un “GO TO .... DEPENDING ON”.
50
CONDICIONES DE EXCEPCION

B) El programa manipula la Condición.

 Utilizar la opción RESP, como parte de la codificación


de los comandos.

 Utilizar la opción NOHANDLE, como parte de la


codificación de los comandos.

 Utilizar el comando IGNORE CONDITION.

51
CONDICIONES DE EXCEPCION

Opción: RESP (data-area)

 Se puede utilizar en cualquier comando.


 CICS deja la respuesta de la ejecución del comando
automáticamente en el campo especificado como
“data-area”.
 El campo especificado en la opción RESP, debe estar
definido como un “fullword” (s9(09) comp).
 Para poder validar la respuesta, sólo basta con hacer
comparaciones entre el campo definido para la opción
RESP, vs el campo DFHRESP, que se encuentra en el
área de control de CICS (linkage section).

52
CONDICIONES DE EXCEPCION
Opción: RESP (data-area), Ejemplo:

EXEC CICS RECEIVE MAP(‘ACCTMNU’)


MAPSET (‘ACCTSET’)
RESP(WS-RESPUESTA)
END-EXEC.

EVALUATE WS-RESPUESTA
WHEN DFHRESP(NORMAL)
PERFORM 2000-RUTINA-NORMAL
WHEN DFHRESP(MAPFAIL)
PERFORM 3000-RUTINA-PUSH-CLEAR
WHEN OTHER
PERFORM 4000-OTROS-ERRORES
END-EVALUATE.
53
CONDICIONES DE EXCEPCION
Opción: NOHANDLE

 Suspende el manejo de condiciones especificadas


previamente por un comando HANDLE CONDITION ó
por los “defaults” de CICS (ABEND o WAIT).
 Sólo suspende este manejo, para la ejecución del
comando en donde se haya especificado.

Ejemplo:
EXEC CICS RECEIVE MAP(‘ACCTMNU’)
MAPSET(‘ACCTSET’)
NOHANDLE
END-EXEC.
54
CONDICIONES DE EXCEPCION

COMANDO IGNORE CONDITION

 Indica que si durante la ejecución de un programa, se


presentára la condición de excepción especificada en el
comando IGNORE CONDITION, CICS No bifurcará
hacia ninguna rutina ó default alguno, dejando el control
al programa en ejecución.

Ejemplo.
EXEC CICS IGNORE
condición
condición
END-EXEC.

55
CONDICIONES DE EXCEPCION
C) Dejar que CICS maneje las condiciones de
Excepción (Defaults de CICS)
Terminación anormal (ABEND, DUMP).

La transacción ó tarea puede quedarse en estado


de “WAIT”, en el caso de utilizar Transient Data
Intrapartición y se presentára la condición de
“NOSPACE”.

56
CONDICIONES DE EXCEPCION

 Debemos de considerar NO utilizar, dentro de


la(s) rutina(s) que resuelva(n) la excepción
presentada, el uso de algún comando de CICS
(dentro de ella) que pudiera ocasionar la misma
excepción por la que se bifurco a esta, ya que
esta acción causará un posible LOOP en el
programa.

57
RESTRICCIONES
Restricciones de Lenguaje
• No utilizar Environment Division.

• Entrada de File Section con manipulación de datos.

• Parámetros de usuario para el programa principal


(PARM).

• Longitud de Working Storage hasta 64k.

58
RESTRICCIONES
Instrucciones Restringidas
• ACCEPT
• CALL (en opción dinámica)
• CLOSE
• DELETE
• DISPLAY
• MERGE
• OPEN
• STOP ‘literal’
• READ
• RERUN
• REWRITE
• SORT
• START
• WRITE
59
RESTRICCIONES
Opciones de Compilador Restringidas
• DYNAM
• GRAPHIC
• NOLIB
• NORENT
• NORES
• NUMPROC
• TRUNC
• ADV
• FASTSRT
• OUTDD

60
Modulo III:

BMS, MANEJO DE
MAPAS
(PANTALLAS)

61
TCP (Terminal Control Program)
El programa de Control de Terminales (TCP), es un
módulo de administración de CICS, que proporciona
una interfase de comunicaciones a los programas de
aplicativos.
Estos programas invocan al TCP mediante comandos
de CICS, relacionados con:

 Requerir a las terminales para que transmitan sus


transacciones.

 Transferir datos entre el programa y la terminal.

 Atender requerimientos de hardware de comunicaciones.

62
TCP (Terminal Control Program)
Caracteristicas del TCP:

 Utiliza la Terminal Control Table (TCT).


 Requiere la iniciación de una nueva tarea.
 Una Transacción inicia una tarea.
 La terminal que inicia la transmisión de una
transacción, esta asociada solamente a una tarea.

TERMINAL
PROGRAMA
“XXXX”
TERMINAL APLICATIVO 1
CONTROL
PROGRAM
TERMINAL (TCP)
“YYYY” PROGRAMA
APLICATIVO 2

63
TIOA (Terminal I-O Area)
Cuando una terminal transmite una transacción a TCP, la
entrada se aloja en un área especial llamada Terminal Input-
Output Área (TIOA).

La información alojada en la TIOA contiene:

 Identificación

 Datos

La identificación es la clave de la transacción ejecutada.


Dentro de los datos alojados en TIOA, se encuentra
información correspondiente a controles e identificadores de
datos aplicativos y de CICS, así como la misma información
aplicativa.
64
Comandos de Control de Terminal

Para efectuar operaciones con terminales


(Envío/Recepción de información), sin utilizar
mapas, pueden ser utilizados los comandos:

 RECEIVE
 SEND

65
Comandos de Control de Terminal
RECEIVE
Se utiliza para recibir información, ya sea de una terminal ó
de una comunicación APPC.
Formato:

EXEC CICS RECEIVE


INTO (data-area)
LENGTH (data-value)
END-EXEC

INTO Especifica el área de trabajo dentro del


pgm, en donde se van a alojar los datos a recibir.
LENGTH Campo en donde se indica la longitud del
mensaje a recibir, debe de ser especificada
como una variable “half-word” . 66
Comandos de Control de Terminal
SEND
Se utiliza para enviar información a desplegar en una
terminal.
Formato:

EXEC CICS SEND


FROM (data-area)
LENGTH (data-value)
ERASE
END-EXEC

FROM Especifica el área de trabajo dentro del


programa, en donde se encuentran los datos a
desplegar ó enviar.
67
Comandos de Control de Terminal
SEND

LENGTH Campo en donde se indica la longitud del


mensaje a enviar, debe de ser especificada
como una variable “half-word” .

ERASE Indica que la pantalla va a ser borrada antes de


desplegar el mensaje.

68
BASIC MAPPING SUPPORT (BMS)

El programa aplicativo mueve


los datos de salida al área
especificada en el comando:
EXEC CICS SEND MAP

Definición física
Terminal del mapa, la cual
Control contiene inf.
BMS
Table correspondiente
al tipo de Terminal

Cadena de datos dependiente


del tipo de dispositivo

Forma en que BMS interactúa con la Terminal y el


programa aplicativo.
69
BASIC MAPPING SUPPORT (BMS)
Facilidad que proporciona CICS para formatear,
recibir, enviar datos hacia la pantalla u otros
dispositivos (impresora). BMS provee independencia
de dispositivo, el programa no se preocupa por el tipo
de terminal.
Programa aplicativo TCT
Dato 2
TCTTE
Dato 1

BMS

Caracteres de Ctl. Dato 1 Caracteres de Ctl. Dato2

TCP

70
BASIC MAPPING SUPPORT (BMS)

BMS provee independencia del formato de los datos en la


pantalla, el programa aplicativo al momento de hacer
referencia a un campo de la pantalla, lo hace por medio del
Nombre Lógico definido para ese campo.

BMS trabaja con dos tipos de mapas (pantallas), los Mapas


Físicos y los Mapas Simbólicos (lógicos).

71
BASIC MAPPING SUPPORT (BMS)
Mapas Físicos.
Los Mapas Físicos describen el formato de los datos en la
pantalla, dicho formato es con el cual BMS interactúa
físicamente para el manejo del mapa.

Contienen:
 Longitud y localización de los campos
 Atributos
 Constantes
 Características de la terminal

Los Mapas Físicos son resultado de la compilación del


mapa y se almacenan en la biblioteca de módulos de carga
(son un programa ejecutable).
72
BASIC MAPPING SUPPORT (BMS)
Mapas Físicos. (ejemplo)
DAYM001 DFHMSD TYPE=MAP, x
MODE=INOUT, x
LANG=COBOL, x
STORAGE=AUTO, x
CTRL=(FREEKB), x
MAPATTS=(COLOR,HILIGHT,OUTLINE), x
DSATTS=(COLOR,HILIGHT,OUTLINE), x
TIOAPFX=YES, x
DATA=FIELD
**-|
**-| Map DAYM001
**-|
DAYM001 DFHMDI SIZE=(024,080), x
LINE=001, x DAYSOFT
JUSTIFY=(LEFT) 22-05-2006
DUMMYB DFHMDF POS=(01,001), x
LENGTH=002, x
ATTRB=(PROT,FSET,DRK), x
COLOR=NEUTRAL, x
INITIAL=' '
DFHMDF POS=(01,004),ATTRB=(ASKIP,NORM),LENGTH=000 (Stopper)
DFHMDF POS=(01,032), x
ATTRB=(ASKIP,BRT), x
COLOR=NEUTRAL, x
LENGTH=017, x
INITIAL=‘ D A Y S O F T '
FECHA DFHMDF POS=(01,069), x
LENGTH=010, x
ATTRB=(PROT,BRT), x
COLOR=NEUTRAL
DFHMDF POS=(01,080),ATTRB=(ASKIP,NORM),LENGTH=000 (Stopper)
**-|
DFHMSD TYPE=FINAL
END

73
BASIC MAPPING SUPPORT (BMS)
Mapas Simbólicos.
Contienen y definen todos los campos variables que se
manejan en el mapa y con esta definición es con la cual los
programas aplicativos interactúan con BMS.
Los mapas simbólicos son resultado de la compilación del
mapa y se almacenan en la biblioteca de módulos fuente
(son un copybook).
Para poder hacer uso del mapa, solo se necesita incluir el
copybook generado por la compilación de este, dentro del
programa aplicativo.
El programa aplicativo para utilizar y manejar el mapa debe
de hacer referencia a las definiciones generadas en el mapa
simbólico.

74
BASIC MAPPING SUPPORT (BMS)
Mapas Simbólicos.

Por cada campo definido en un mapa se tiene:

LL A DATO 1 LL A DATO 2 LL A DATO 3

CAMPO DE DATOS

BYTE DE ATRIBUTO

LONGITUD DEL CAMPO

75
BASIC MAPPING SUPPORT (BMS)
Mapas Simbólicos.

Por ejemplo, para un campo definido con el nombre de


“CAMPO1”, BM genera en el mapa simbólico las siguientes
definiciones:

LL A DATO 1

CAMPO1I
CAMPO1O
CAMPO1 A
CAMPO1 F
CAMPO1 L

76
BASIC MAPPING SUPPORT (BMS)
Mapas Simbólicos.

En donde:

• CAMPO1L Longitud del campo (después de una


operación de entrada).
• CAMPO1A Byte de atributo.
• CAMPO1F Flag byte, para detectar si el campo fue
borrado con la tecla de EOF (después de
una operación de entrada).
• CAMPO1I Contenido del campo (dato), referencia
para operaciones de entrada.
• CAMPO1O Contenido del campo (dato), referencia
para operaciones de salida.
77
BASIC MAPPING SUPPORT (BMS)
Mapas Simbólicos. (ejemplo)
WORKING STORAGE SECTION.

01 DAYM001I.
02 FILLER PIC X(12).
02 DUMMYBL PIC S9(4) COMP.
02 DUMMYBF PIC X.
02 FILLER REDEFINES DUMMYBF.
03 DUMMYBA PIC X.
02 DUMMYBI PIC X(2).
DAYSOFT
02 FILLER PIC X.
22-05-2006
02 FECHAL PIC S9(4) COMP.
02 FECHAF PIC X.
02 FILLER REDEFINES FECHAF.
03 FECHAA PIC X.
02 FECHAI PIC X(10).
02 FILLER PIC X.

01 DAYM001O REDEFINES DAYM001I.


02 FILLER PIC X(12).
02 FILLER PIC X(3).
02 DUMMYBO PIC X(2).
02 FILLER PIC X.
02 FILLER PIC X(3).
02 FECHAO PIC X(10).
02 FILLER PIC X.

78
BASIC MAPPING SUPPORT (BMS)
Definición de Mapas

CICS opera los mapas como si fueran programas, y los


controla por medio de la PPT.

Bajo BMS, los mapas físicos y simbólicos se generan en


forma batch, se codifican mediante macros en lenguaje
ensamblador, con las reglas de codificación de este
lenguaje.

Los mapas físicos se almacenan en un biblioteca de carga y


los mapas simbólicos en una biblioteca de fuentes.

79
BASIC MAPPING SUPPORT (BMS)
Definición de Mapas

ENSAMBLE FUENTE

MACROS

ENSAMBLE CARGA

80
BASIC MAPPING SUPPORT (BMS)
Mapset

Agrupa uno o más mapas físicos para un mismo tipo de


terminal.
Cuando se requiere un mapa se carga a memoria todo el
mapset.
El mapset debe de definirse en la PPT, su nombre debe de
ser de hasta siete caracteres.
Cuando CICS carga un mapset, internamente agrega el
caracter de sufijo para determinar el tipo de terminal.
En un programa aplicativo, se menciona el nombre genérico
del mapa y del mapset, ya en ejecución BMS carga el
mapset que corresponda al tipo de terminal. 81
BASIC MAPPING SUPPORT (BMS)
Definición de un Mapset

Los mapas se definen por grupos de mapas, llamados


MAPSET.

Las macros que se utilizan para la definición de un mapa


son:

DFHMSD : Para la definición de un mapset.

DFHMDI : Para la definición de un mapa.

DFHMDF : Para la definición de un campo.

82
BASIC MAPPING SUPPORT (BMS)
Definición de un Mapset (ejemplo)

DFHMSD (INICIO DEL MAPSET)


D A Y S O F T 22-05-200
...
NOMBRE :
DFHMDI .....
NUMERO DE CLIENTE: DFHMDF .....
NUMERO DE CUENTA:
DFHMDF .....
DFHMDF .....

D A Y S O F T 22-05-2006
DFHMDI .....
DFHMDF .....
NOMBRE : DFHMDF .....
NUMERO DE CLIENTE:

DFHMSD (FIN DEL MAPSET)

83
BASIC MAPPING SUPPORT (BMS)
DFHMSD
Macro que nombra y describe un Mapset, debe de ser la
primera y la última en codificarse.

Su formato es:

nombre DFHSMSD TYPE =<DSECT,MAP,FINAL>


,MODE=<IN,OUT, INOUT>
,LANG =<ASM,COBOL, PLI, C>
,TERM =<TIPO>
,CTRL = (<PRINT,length,
FREEKB,ALARM,FRSET>)
,DATA =<FIELD,BLOCK>
,TIOAPFX=<NO,YES>
,STORAGE=<AUTO>
84
BASIC MAPPING SUPPORT (BMS)
DFHMSD (Operandos)

nombre = Nombre del Mapset, hasta 7 caractéres como Máximo


TYPE = Especifica el Tipo de Mapa a ser Generado.
DSECT = Indica que la Descripción Simbólica del Mapa será
Generada.
MAP = Indica que el Mapa Físico será Generado.
FINAL = Indica el fin de la codificación del Mapa.
MODE = Especifica como será utilizado el Mapset Entrada, Salida
ó de Ambas.
LANG = Especifica el Lenguaje Fuente en el que será Generado
el Mapa Simbólico ó Lógico.
TERM = Especifica el Tipo de Terminal ó Unidad Lógica (LU),
asociada al Mapset. Si se omite especificar un tipo de
Terminal ó LU, el tipo 3270 es asociado por Default.
85
BASIC MAPPING SUPPORT (BMS)
DFHMSD (Operandos)

CTRL = Define las características de las Terminales IBM 3270.


PRINT = Debe de ser Especificado si la Impresora se
desea utilizar.
LENGTH = Indica la longitud de la Línea de Impresión,
pueden ser utilizados L40, L64, L80, ó HONEOM. L40,
L64, and L80 forzan una nueva Línea después de 40, 64,
or 80 caracteres, respectivamente. HONEOM indica la
Línea de Impresión Default utilizada por la Impresora.
FREEKB = Desbloquea el Teclado después de solicitar un
envío del Mapa. Si no se especifica FREEKB, el teclado
estará Bloqueado hasta que se cambie el estado.

86
BASIC MAPPING SUPPORT (BMS)
DFHMSD (Operandos)

CTRL ALARM = Activa la alarma audible 3270.


FRSET = Especifica que los modified data tags (MDTs), de
todos los campos serán puestos en estado de NO
modificados, antes de que el Mapa sea enviado al Buffer.
Esto permite que el operando ATTRB de la macro
DFHMDF controlar el estado final de cualquier campo del
Mapa.
DATA = Especifica el formato en que se enviarán y recibirán los
datos del Mapset.
FIELD = Especifica que los datos serán pasados en
campos contiguos, cada campo tendrá el siguiente
formato:
LL A DATA

87
BASIC MAPPING SUPPORT (BMS)

DFHMSD (Operandos)
DATA "LL" son dos bytes, que especifican la Longitud
de entrada del dato. "A" es un byte en el cual el
Programador puede manejar los Atributos
especificados para el Mapa.
BLOCK = Especifica que los datos serán pasados
en una cadena continua, con el siguiente
formato :
+------------------------+
¦ A ¦ data field ¦ space ¦
+------------------------+
TIOAPFX = Especifica si BMS incluirá un “filler” en la
descripción simbolica del Mapa, esto para
utilizar el prefijo de TIOA, se DEBE de poner la
opción “YES”, para el uso de Comandos de
Programación.
88
BASIC MAPPING SUPPORT (BMS)

DFHMSD (Operandos)
STORAGE = El significado de este Operando depende del
Lenguaje de Programación utilizado para el
Programa Aplicativo.
Para un programa COBOL, STORAGE=AUTO
Especifica que la descripción Simbólica de los
Mapas generados dentro del Mapset, ocuparán
Áreas separadas de almacenamiento (esto es,
NO se redefinirán Áreas).

89
BASIC MAPPING SUPPORT (BMS)

DFHMDI
MACRO QUE DEFINE Y DESCRIBE UN MAPA DENTRO DE
UN MAPSET.
SU FORMATO ES:
nombre DFHMDI SIZE=(LINEA,COLUMNA)
,LINE= 1 A 240
,COLOR=<BLUE,RED,PINK,
NEUTRAL>
,COLUMN=1 A 240
,JUSTIFY=(<LEFT,RIGTH>,
<FIRST,LAST>)
,TIOAPFX=<NO,YES>
,DATA=<FIELD,BLOCK>

90
BASIC MAPPING SUPPORT (BMS)

DFHMDI (Operandos)
nombre = Nombre del Mapa, hasta 7 caracteres como
Máximo
SIZE = Especifica el Tamaño del Mapa.
LINEA= Especifica la profundidad del Mapa en
Número de Líneas, que van de un rango de 1 a
240.
COLUMN= Especifica lo ancho del Mapa en
Número de Columnas, que van de un rango de 1
a 240.
LINE = Especifica la Línea de Inicio para el
Despliegue de Datos de un Mapa hacia una
Pantalla. El rango de valores es de 1 a 240.

91
BASIC MAPPING SUPPORT (BMS)

DFHMDI (Operandos)
COLOR = Indica el Color individual ó Default utilizado
para los caracteres del Mapa. Este operando
causaría override al Operando COLOR,
manejado en la macro DFHMDF.
Los colores validos son BLUE, BLUED, PINK,
GREEN, TURQOISE, YELLOW Y NEUTRAL.
El Operando COLOR es Ignorado si la Terminal
donde va a ser utilizado no Soporta Colores.
COLUMN = Especifica la columna de una Línea, en la cual
el Mapa será desplegado, esto es establece el
Margen Izquierdo ó Derecho del Mapa. Las
columnas que se encuentren entre el Margen
Especificado para el Mapa y el Margen propio
para la página (pantalla), no se encontraran
disponibles para su uso. Rango de 1 a 240.
92
BASIC MAPPING SUPPORT (BMS)

DFHMDI (Operandos)
JUSTIFY = Especifica la posición del Mapa en la Página
(Pantalla).
LEFT = Especifica que el mapa será posicionado
en el Margen Izquierdo de la Página, en la
columna especificada (con COLUMN), y en la
Línea Especificada (con LINE).
RIGTH = Especifica que el mapa será
posicionado en el Margen Derecho de la Página,
(con la columna y Línea especificadas)
FIRST = Especifica que el mapa será
posicionado como el primer mapa en cada nueva
página.
LAST = Indica que el mapa será posicionado al
final de la Página Actual.
LEFT y RIGHT son mutuamente excluyentes, al
igual que FIRST y LAST. 93
BASIC MAPPING SUPPORT (BMS)

DFHMDI (Operandos)
TIOAPFX = Especifica si BMS incluirá un “filler” en la
descripción simbolica del Mapa, esto para
utilizar el prefijo de TIOA. Este operando
genera override al Operando TIOAPFX
epecificado para la Macro DFHMSD.
YES = Especifica que el “filler” deberá ser
incluido en la Descripción de los Mapas
Simbólicos. TIOAPFX=YES debe de ser
SIEMPRE usado para los programas Aplicativos
que utilicen Comandos.
NO = Es el default y especifica que el “filler” no
será incluido.

94
BASIC MAPPING SUPPORT (BMS)

DFHMDI (Operandos)
DATA = Especifica el formato en que se enviarán y
recibirán los datos del Mapa.
FIELD = Especifica que los datos serán pasados
en campos contiguos, cada campo tendrá el
siguiente formato:
+---------------------+
¦ LL ¦ A ¦ data field ¦
+---------------------+
BLOCK = Especifica que los datos serán pasados
en una cadena continua, con el siguiente
formato :
+------------------------+
¦ A ¦ data field ¦ space ¦
+------------------------+

95
BASIC MAPPING SUPPORT (BMS)

Definición de Campos en un Mapa


UN MAPA ESTA FORMADO DE VARIOS CAMPOS, LA
DEFINICION DE CADA CAMPO DEBE DE INCLUIRSE AL
MOMENTO DE LA CREACION DEL MAPA.
ASI MISMO PARA CREAR CADA CAMPO SE DEBE DE TOMAR EN
CUENTA LA DEFINICION DE LOS “DELIMITADORES”
(STOPPERS), QUE DEBERAN CREARSE AL FINAL DE CADA
CAMPO DESPROTEGIDO, CADA UNO DE ESTOS
“DELIMITADORES” TENDRA EL ATRIBUTO DE PROTEGIDO Y
AUTOSKIP. EL EFECTO QUE DARAN ESTOS
“DELIMITADORES” EN EL MAPA, ES QUE EL CURSOR
BRINCARA AUTOMATICAMENTE, AL MOMENTO DE LLENAR CON
INFORMACION CADA CAMPO DESPROTEGIDO, HACIA EL
SIGUIENTE CAMPO DE DESPROTEGIDO.

96
BASIC MAPPING SUPPORT (BMS)

Definición de Campos en un Mapa

D A Y S O F T 22-05-2006
CAMPOS
NOMBRE :
PROTEGIDOS
NUMERO DE CLIENTE:

NUMERO DE CUENTA:
DELIMI-
CAMPOS
TADORES
DESPROTEGIDOS
(STOPPERS)

97
BASIC MAPPING SUPPORT (BMS)

DFHMDF
MACRO QUE ES USADA PARA LA DEFINICION DE CADA CAMPO
DENTRO DE UN MAPA DEFINIDO PREVIAMENTE CON LA
MACRO DFHMDI.
UN MAPA PUEDE CONTENER CERO ó MAS CAMPOS.
LOS CAMPOS DEBERAN SER DEFINIDOS EN ORDEN DE
ARRIBA HACIA ABAJO Y DE IZQUIERDA A DERECHA, ESTO ES
DEBIDO A QUE EL PERFORMANCE DE LAS OPERACIONES DE
ENTRADA PARA EL MAPEO DE DATOS, SON MAS OPTIMAS SI
LAS MACROS DFHMDF SON DESCRITAS EN ORDEN
NUMERICO DE ACUERDO AL OPERANDO POS.

NO SE PUEDEN DEFINIR MAS DE 1023 CAMPOS NOMBRADOS,


PARA UN MAPA DE ENTRADA/SALIDA, QUE SEA UTILIZADO
PARA COBOL, C ó PL/I.
98
BASIC MAPPING SUPPORT (BMS)

DFHMDF
SU FORMATO ES:
nombre DFHMDF POS=(LINEA,COLUMNA)
,ATTRIB=(<ASKIP,NUM,PROT,
UNPROT><BRT,NORM,DET,FSET,
IC,DRK>)
,INITIAL=‘CONSTANTE’
,XINIT=‘CONSTANTE HEX’
,LENGTH=1 A 256
,PICIN=‘VALOR’
,PICOUT=‘VALOR’
,JUSTIFY=(<LEFT,RIGTH>,
<BLANK,ZERO>)
,GRPNAME=NOMBRE
,OCCURS=NUM. DE OCURRENCIAS
99
BASIC MAPPING SUPPORT (BMS)

DFHMDF (Operandos)
nombre = Nombre del Campo (1-30 caracteres), este
nombre debe de ser Único para todo el Mapa.
POS = Especifica la Localización Física del Campo
dentro del Mapa (coordenadas “Línea-Columna”).
ATTRB = Este operando sólo Aplica en los dispositivos
3270, es ignorado para otros dispositivos.
ASKIP = Es el default, especifica que NO se
podrá teclear nada en el campo y causa que el
CURSOR salte hacia otro campo.
BRT = Especifica que el campo tendrá un
despliegue de Información más intenso
(brillante).

100
BASIC MAPPING SUPPORT (BMS)

DFHMDF (Operandos)
ATTRB DET = Especifica que el campo es Potencialmente
Detectable.
El 1er caracter para que un campo 3270, sea
detectable, deben de ser los siguientes :
? > & blank
DET y DRK son mutuamente excluyentes.
DRK = Especifica que aunque se teclee
información en el campo, esta NO será
desplegada.
FSET = Especifica que la “modified data tag
(MDT)”, para este campo deberá de estar
“prendida”, cuando el campo sea enviado a
laTerminal. Cuando NO se especifica FSET, la
información NO viaja.
101
BASIC MAPPING SUPPORT (BMS)

DFHMDF (Operandos)
ATTRB IC = Especifica que el Cursor será puesto en la
1era. Posición del campo, Sólo se debe de
especificar para un campo dentro del mapa, si no
se especifica para ninguno el default es Línea 1
Columna 1.
NORM = Especifica que la intensidad de
Despliegue (brillo) para el campo, será normal.
NUM = Asegura que la entrada de Información
por el Teclado, sea necesariamente Numérica.
PROT = Especifica que NO se puede teclear
Información en ese campo (protegido).
UNPROT = Permite que se pueda Teclear
Información en el Campo.

102
BASIC MAPPING SUPPORT (BMS)

DFHMDF (Operandos)
INITIAL Especifica la constante ó dato default para un
XINIT campo de Salida (despliegue). INITIAL es usado
para manejo de información en forma de
CARACTERES, ejemplo : INITAL= ‘DAY
COMERCIAL’; XINIT es usado para manejar
información en forma HEXADECIMAL, en el caso,
ejemplo XINIT=C1C240C1C2, el resultado sería
‘AB AB’.
LENGTH Especifica la longitud (1-256 bytes) del campo ó
del grupo de campos.
PICIN Especifica la forma de edición a aplicar en un
campo de entrada, para un Mapa de Entrada ó de
Entrada-Salida.

103
BASIC MAPPING SUPPORT (BMS)

DFHMDF (Operandos)
PICIN Esta forma de edición del campo, es pasada al
Programa Aplicativo, permitiendo explotar las
facilidades de edición de datos utilizada en COBOL
ó PL/I.
Ejemplo, supongamos que existe el siguiente
mapa:
MAPX DFHMSD TYPE=DSECT,
LANG=COBOL,
MODE=INOUT
MAP DFHMDI LINE=1,COLUMN=1,
SIZE=(1,80)
F1 DFHMDF POS=0,LENGTH=30
F2 DFHMDF POS=40,LENGTH=10,
PICOUT='$$$,$$0.00'
F3 DFHMDF POS=60,LENGTH=6,
PICIN='9999V99',
PICOUT='ZZ9.99'
DFHMSD TYPE=FINAL
104
BASIC MAPPING SUPPORT (BMS)

DFHMDF (Operandos)
PICIN Esto generaría la siguiente DSECT:
01 MAPI. 01 MAPO REDEFINES MAPI.
02 F1L PIC S9(4) COMP. 02 FILLER PIC X(3).
02 F1A PIC X. 02 F1O PIC X(30).
02 FILLER REDEFINES F1A. 02 FILLER PIC X.
03 F1F PIC X. 02 FILLER PIC X(3).
02 F1I PIC X(30). 02 F2O PIC $$$,$$0.00.
02 FILLER PIC X. 02 FILLER PIC X.
02 F2L PIC S9(4) COMP. 02 FILLER PIC X(3).
02 F2A PIC X. 02 F3O PIC ZZ9.99.
02 FILLER REDEFINES F2A. 02 FILLER PIC X.
03 F2F PIC X.
02 F2I PIC X(10).
02 FILLER PIC X.
02 F3L PIC S9(4) COMP.
02 F3A PIC X.
02 FILLER REDEFINES F3A.
03 F3F PIC X.
02 F3I PIC 9999V99.
02 FILLER PIC X.
105
BASIC MAPPING SUPPORT (BMS)

DFHMDF (Operandos)
PICIN Nota: Los valores válidos utilizados para los
Mapas de Entrada para COBOL, son:
APSVX9/y(
PICOUT Es similar a PICIN, excepto que el formato de
edición del campo, es aplicado para campos de
Salida, en Mapas de OUT ó INOUT.
Nota: Los valores válidos utilizados para los
Mapas de Salida para COBOL son:
ABEPSVXZ09,.+-$
CR DB / y (
NOTA: Para PICIN y PICOUT, se debe hacer referencia al
manual del Lenguaje correspondiente para verificar la Sintaxis
correcta del Atributo PICTURE.
106
BASIC MAPPING SUPPORT (BMS)

DFHMDF (Operandos)
JUSTIFY Especifica la justificación del dato, para
Operaciones de Entrada.
LEFT = Alineará la información de entrada hacia
la Izquierda.
RIGHT = Alineará la información de entrada
hacia la Derecha.
BLANK = Especifica que en las posiciones que no
se hayan llenado en un campo de entrada, en
estas se insertarán Blancos.
ZERO = Especifica que en las posiciones que no
se hayan llenado en un campo de entrada, en
estas se insertarán ceros.

107
BASIC MAPPING SUPPORT (BMS)

DFHMDF (Operandos)
JUSTIFY LEFT y RIGHT son mutuamente excluyentes, así
como BLANK y ZERO. Si JUSTIFY es omitido,
pero el atributo de NUM es especificado, RIGHT
y ZERO son asumidos. Si JUSTIFY es omitido,
pero se especifico cualquier atributo diferente a
NUM, LEFT y BLANK son asumidos.
GRPNAME Se utiliza para generar un nombre de Grupo,
cual contendrá la definición de diferentes
Campos, con este nombre de Grupo se puede
hacer referencia a todos los campos contenidos
en el. Si se especifica este operando, OCCURS no
puede ser especificado. Se deberá especificar el
mismo de nombre de Grupo para todos los
campos relacionados con este.

108
BASIC MAPPING SUPPORT (BMS)

DFHMDF (Operandos)
GRPNAME La definición de cada uno de los campos
integrantes del Grupo, deberá ser continua. El
operando ATTRB especificado en el primer
campo del Grupo, aplicará para todos los campos
contenidos en ese Grupo. Ejemplo:
MO DFHMDF POS=(10,1),LENGTH=2,ATTRB=BRT,GRPNAME=DATE
SEP1 DFHMDF POS=(10,3),LENGTH=1,GRPNAME=DATE,INITIAL='-'
DAY DFHMDF POS=(10,4),LENGTH=2,GRPNAME=DATE
SEP2 DFHMDF POS=(10,6),LENGTH=1,GRPNAME=DATE,INITIAL='-'
YR DFHMDF POS=(10,7),LENGTH=2,GRPNAME=DATE

Las anteriores definiciones producirían el


siguiente Mapa Simbólico:
02 DATE.
03 FILLER PICTURE X(2).
03 MOA PICTURE X.
03 MOO PIC X(2).
03 SEP1 PIC X(1).
03 DAO PIC X(2).
03 SEP2 PIC X(1).
03 YRO PIC X(2). 109
BASIC MAPPING SUPPORT (BMS)
DFHMDF (Operandos)
OCCURS Especifica que será generado un Arreglo para el
campo señalado y bajo el número de Ocurrencias
especificado. Esto permite que varios campos
sean utilizados bajo el mismo nombre
(subscritos), sin la necesidad de generar un
nombre único para cada uno de ellos. OCCURS y
GRPNAME son mutuamente excluyentes.
Ejemplo:
TELNO DFHMDF POS=(7,1),LENGTH=9,ATTRB=NORM,OCCURS=40

La descripción de estos campos en el Mapa


Simbólico sería la Siguiente:
02 TELNOG OCCURS 40.
03 FILLER PICTURE X(2).
03 TELNOA PICTURE X.
03 TELNOO PIC X(9).
110
BASIC MAPPING SUPPORT (BMS)

ENVIO DE UN MAPA
CUANDO UN PROGRAMA ENVIA UN MAPA, BMS LE PONE LOS
CARACTERES DE CONTROL, Y MUEVE TODO EL MAPA ARMADO
A LA TIOA DE DONDE LO TOMA TCP PARA ENVIARLO A LA
TERMINAL.
PROGRAMA APLICTIVO TCT
DATO 2
TCTTE
DATO 1

BMS

CARACTERES DE CTL. DATO 1 CARACTERES DE CTL DATO2

TCP
111
BASIC MAPPING SUPPORT (BMS)
SEND MAP
PARA REALIZAR LO ANTERIOR SE DEBE DE UTILIZAR EL
COMANDO SEND MAP, QUE TIENE EL SIGUIENTE FORMATO:
EXEC CICS SEND MAP (nombre)
MAPSET (nombre)
TERMINAL
FROM (área)LENGTH (valor)
DATAONLY | MAPONLY
ALARM
CURSOR (valor)
ERASE | ERASEUP
FREEKB
FRSET
HONEOM | L40 | L64 | L80
END-EXEC
EXCEPCIONES: INVMPSZ, INVREQ
112
BASIC MAPPING SUPPORT (BMS)

SEND MAP (Operandos)


SEND MAP Especifica el nombre del MAPA a ser Desplegado,
dicho nombre debe de ser el especificado en la
Macro DFHMDI.
MAPSET Nombre del MAPSET, dicho nombre debe de ser el
especificado en la Macro DFHMSD.
TERMINAL Especifica que la Información será enviada hacia
la Terminal que originó la Transacción (default).
FROM Especifica el Área desde donde se enviará el
Mapa. Si no se especifica este Operando, asignará
esta área por default, otorgando el nombre del
Mapa, más un sufijo con la letra “O”.
LENGTH Especifica la Longitud del Área a ser enviada, con
una variable tipo “Halfword” (S9(4) COMP ó
BINARY). Se recomienda (COBOL), hacer uso de
la sentencia “LENGTH OF”.
113
BASIC MAPPING SUPPORT (BMS)

SEND MAP (Operandos)


DATAONLY Especifica que sólo los datos que interactúan con
el Programa Aplicativo, serán escritos/enviados.
MAPONLY Especifica que sólo los datos default del Mapa
(Constantes) serán escritos/enviados.
ALARM Activa la alarma audible 3270.
CURSOR Especifica la localización del Cursor (en número
de posición) al momento del Despliegue del Mapa.
Si no se especifica este operando, tomará el valor
default especificado en la definición del Mapa.
Este operando dará override, a lo especificado en
la Macro DFHMDI, operando “IC”.
ERASE Antes de desplegar la información en la Pantalla,
borra lo que contenga en esos momentos la
Pantalla.

114
BASIC MAPPING SUPPORT (BMS)

SEND MAP (Operandos)


ERASEUP Antes de desplegar la información en la Pantalla,
borra lo que contengan en esos momentos los
campos DESPROTEGIDOS de la Pantalla.
FREEKB Desbloquea el Teclado después de solicitar un
envío del Mapa. Si no se especifica FREEKB, el
teclado estará Bloqueado hasta que se cambie el
estado.
FRSET Especifica que los modified data tags (MDTs), de
todos los campos serán puestos en estado de NO
modificados, antes de que el Mapa sea enviado al
Buffer. Esto permite que el operando ATTRB de la
macro DFHMDF controle el estado final de
cualquier campo del Mapa.

115
BASIC MAPPING SUPPORT (BMS)
RECEIVE MAP
PARA REALIZAR LA RECEPCION DE INFORMACION DE UN MAPA
DE BMS, SE DEBE DE UTILIZAR EL COMANDO RECEIVE MAP,
QUE TIENE EL SIGUIENTE FORMATO:
EXEC CICS RECEIVE MAP (nombre)
MAPSET (nombre)
FROM (área) LENGTH(valor)
TERMINAL [ASIS]
INTO (área) | SET (apuntador)
END-EXEC

EXCEPCIONES : MAPFAIL, INVREQ

116
BASIC MAPPING SUPPORT (BMS)

RECEIVE MAP (Operandos)


RECEIVE Especifica el nombre del MAPA a ser Recibido,
MAP dicho nombre debe de ser el especificado en la
Macro DFHMDI.
MAPSET Nombre del MAPSET, dicho nombre debe de ser el
especificado en la Macro DFHMSD.
FROM Especifica el Área de donde se tomará la
Información a ser “Mapeada” por el comando
RECEIVE.
LENGTH Especifica la Longitud del Área a ser enviada, con
una variable tipo “Halfword” (S9(4) COMP ó
BINARY). Se recomienda (COBOL), hacer uso de
la sentencia “LENGTH OF”.

117
BASIC MAPPING SUPPORT (BMS)

RECEIVE MAP (Operandos)


INTO Especifica el Área en donde se recibirá el Mapa. Si
no se especifica este Operando, asignará esta
área por default, otorgando el nombre del Mapa,
más un sufijo con la letra “I”.
SET Especifica que la información será recibida en un
Área de Memoria Direccionable (Dirección de
Memoria), se debe de especificar la Dirección de
Memoria en formato de “Fullword” S9(09) COMP
ó BINARY).
TERMINAL Especifica que la Información será recibida desde
la Terminal que originó la Transacción (default).
ASIS Con esta Opción de TERMINAL, permitirá el
respetar que los Caracteres en minúsculas NO
serán transferidos a Mayúsculas.

118
BASIC MAPPING SUPPORT (BMS)
MODIFICACION DEL BYTE DE ATRIBUTO
LOS BYTES DE ATRIBUTO, SE ENCUENTRAN DEFINIDOS EN EL
MAPA SIMBOLICO, ESTE BYTE PUEDE SER MODIFICADO POR EL
PROGRAMA APLICATIVO EN LA CODIFICACION DEL MISMO.
EXISTE UNA LISTA PREDEFINIDA DE ATRIBUTOS PARA UN
CAMPO, ESTA LISTA PUEDE SER UTILIZADA POR UN PROGRAMA
APLICATIVO, CON SOLO HACER REFERENCIA AL COPY:
DFHBMSCA
ALGUNOS DE LOS CAMPOS SON:
DFHBMASB Salto Automático con Brillo
DFHBMBRY Brillo
DFHBMPRO Protegido
DFHBMUNN No Protegido y Numérico

119
Modulo IV:

COMANDOS DE
PROGRAMACION

120
Program Control Program (PCP)

PROGRAM CONTROL PROGRAM (PCP), ES EL MODULO DE


CONTROL ENCARGADO DE MANEJAR, LOCALIZAR Y CARGAR EN
MEMORIA PROGRAMAS APLICATIVOS.
PCP ES EL ENCARGADO DE PASAR EL CONTROL ENTRE ELLOS,
USA LA PROCESSING PROGRAM TABLE (PPT), PARA REALIZAR
DICHAS FUNCIONES.
OTRA DE LAS FUNCIONES DE PCP ES LA DE PURGAR
PROGRAMAS CUANDO:

•EL PROGRAMA NO ES RESIDENTE Y NO SE ESTA USANDO


•CICS NECESITA MEMORIA

121
Program Control Program (PCP)

PARA PASAR EL CONTROL Y A LA VEZ EJECUTAR PROGRAMAS


EN CICS, SE TIENEN DOS COMANDOS:
LINK.
TRANSMITE EL CONTROL DE EJECUCION DE LA
TRANSACCION A UN PROGRAMA Y CUANDO ESTE
TERMINA, REGRESA A LA SIGUIENTE INSTRUCCIÓN DEL
PROGRAMA LLAMADOR. EL PROGRAMA LLAMADO ES DE
UN NIVEL LOGICO INFERIOR.
XCTL.
TRANSMITE EL CONTROL DE EJECUCION DE LA
TRANSACCION A UN PROGRAMA, OCASIONANDO QUE EL
PROGRAMA LLAMADOR TERMINE SU EJECUCION AL
MOMENTO DEL LLAMADO. EL PROGRAMA LLAMADO ES
DEL MISMO NIVEL LOGICO QUE EL LLAMADOR.
122
Program Control Program (PCP)
Niveles Lógicos de Ejecución

CICS NIVEL 0

NIVEL 1
PROG A
.
LINK
.
RETURN

PROG B PROG C NIVEL 2


. .
XCTL LINK
. .
RETURN RETURN

NIVEL 3 PROG D PROG E


. .
. .
XCTL .
. .
RETURN RETURN
123
Program Control Program (PCP)
CUANDO UN PROGRAMA EJECUTA UN COMANDO RETURN, EL
PROGRAMA REGRESA AL NIVEL LOGICO, INMEDIATO SUPERIOR.
ASI MISMO SI SE REALIZAN LLAMADOS HACIA OTROS PROGRAMAS,
DURANTE LA EJECUCION DE UNA TRANSACCION, NORMALMENTE ES
NECESARIO PASAR DATOS DE UN PROGRAMA A OTRO. PARA PODER
REALIZAR ESTO, CICS MANEJA LA OPCION “AREA DE
COMUNICACIÓN” (COMMAREA), QUE ESTA INCLUIDA EN LOS
COMANDOS QUE PROVOCAN LA EJECUCION DE UN PROGRAMA.

COMMAREA

LINK O
XCTL PROG
PROG
B
A

124
Program Control Program (PCP)
LINK
PARA REALIZAR LA TRANSFERENCIA DE CONTROL DE UN
PROGRAMA APLICATIVO HACIA OTRO EN UN NIVEL LOGICO
INFERIOR, SE DEBE DE UTILIZAR EL COMANDO LINK, QUE
TIENE EL SIGUIENTE FORMATO:
EXEC CICS LINK PROGRAM (programa)
COMMAREA (Área)
LENGTH (valor)
END-EXEC

EXCEPCIONES : NOTAUTH, PGMIDERR

125
Program Control Program (PCP)
LINK (Operandos)
PROGRAM Especifica el nombre del Programa al cual se le
desea transferir el control de la Transacción,
puede ser una literal encerrada entre apostrofes
(‘nom-pgm1’) ó constante definida en WS.
Longitud de 1 a 8 caracteres.
COMMAREA Especifica el Área de comunicación (datos) a ser
compartida con el programa al cual se le
transfiere el control de la Transacción.
LENGTH Especifica la Longitud del Área de comunicación
(commarea) a ser enviada, se debe de especificar
dicha Área con una variable tipo “Halfword”
(S9(4) COMP ó BINARY). Se recomienda
(COBOL), hacer uso de la sentencia “LENGTH
OF”.

126
Program Control Program (PCP)
XCTL
PARA REALIZAR LA TRANSFERENCIA DE CONTROL DE UN
PROGRAMA APLICATIVO HACIA OTRO EN UN MISMO NIVEL
LOGICO, SE DEBE DE UTILIZAR EL COMANDO XCTL, QUE
TIENE EL SIGUIENTE FORMATO:
EXEC CICS XCTL PROGRAM (programa)
COMMAREA (Área)
LENGTH (valor)
END-EXEC

EXCEPCIONES : NOTAUTH, PGMIDERR

127
Program Control Program (PCP)
XCTL (Operandos)
PROGRAM Especifica el nombre del Programa al cual se le
desea transferir el control de la Transacción,
puede ser una literal encerrada entre apostrofes
(‘nom-pgm1’) ó constante definida en WS.
Longitud de 1 a 8 caracteres.
COMMAREA Especifica el Área de comunicación (datos) a ser
compartida con el programa al cual se le
transfiere el control de la Transacción.
LENGTH Especifica la Longitud del Área de comunicación
(commarea) a ser enviada, se debe de especificar
dicha Área con una variable tipo “Halfword”
( S9(4) COMP ó BINARY ). Se recomienda
(COBOL), hacer uso de la sentencia “LENGTH
OF”.

128
Program Control Program (PCP)
RETURN
PARA REALIZAR LA TRANSFERENCIA DE CONTROL DE UN
PROGRAMA APLICATIVO HACIA OTRO EN UN NIVEL LOGICO
SUPERIOR ó PARA LA FINALIZACION DE UNA TRANSACCION,
SE DEBE DE UTILIZAR EL COMANDO RETURN, QUE TIENE EL
SIGUIENTE FORMATO:
EXEC CICS RETURN [TRANSID (transacción)]
COMMAREA (Área)
LENGTH (valor)
END-EXEC

EXCEPCIONES : NOTAUTH, INVREQ

129
Program Control Program (PCP)
RETURN (Operandos)
TRANSID Especifica el nombre de la Transacción (1-4
caracteres), el cual será usado con el siguiente
“Mensaje de entrada (input message) introducido
por la terminal asociada a la Tarea que realizó el
último comando RETURN. Este nombre debe de
estar definido como Transacción para que CICS lo
reconozca.
COMMAREA Especifica el Área de comunicación (datos) a ser
compartida con la Transacción que se especifico
en la Opción TRANSID de este comando.
LENGTH Especifica la Longitud del Área de comunicación
(commarea) a ser enviada, se debe de especificar
dicha Área con una variable tipo “Halfword”
( S9(4) COMP ó BINARY ). Se recomienda
(COBOL), hacer uso de la sentencia “LENGTH
OF”.
130
Program Control Program (PCP)
EJEMPLO DE COMMAREA
PGM EMISOR PGM RECEPTOR
*******************************************
* INICIO DE AREAS DE TRABAJO * *******************************************
******************************************* * AREA DE COMUNICACION *
WORKING STORAGE SECTION *******************************************
* LINKGAGE SECTION.
01 AREA-COM-1. *
05 PARAMETROS. 01 DFHCOMMAREA.
10 NUM-CUENTA PIC X(10). 05 PARAMETROS.
05 DATOS. 10 NUM-CUENTA PIC X(10).
10 NOMBRE PIC X(40). 05 DATOS.
10 DIRECCION PIX X(40). 10 NOMBRE PIC X(40).
PROCEDURE DIVISION. 10 DIRECCION PIX X(40).
... PROCEDURE DIVISION.
... ...
******************************************* ...
* LLAMADO AL PGM1 * *******************************************
******************************************* * MUEVE DATOS A COMMAREA *
2000-OBTIENE-NOMBRE-Y-DIREC. *******************************************
* 2000-MUEVE-DATOS-COMMAREA..
EXEC CICS LINK *
PROGRAM (‘PGM001’) MOVE DATO-1 TO NOMBRE.
COMMAREA (AREA-COM-1) MOVE DATO-2 TO DIRECCION.
LENGTH (LENGTH OF AREA-COM-1)
END-EXEC.

131
Program Control Program (PCP)
Terminación anormal de un programa ABEND
SE PUEDE PROVOCAR LA TERMINACION ANORMAL DE UNA
TAREA (ABEND) EN FORMA VOLUNTARIA. ES UTIL PARA LA
DEPURACION DE PROGRAMAS.
PARA DETENER LA EJECUCIÓN SE DEBE DE UTILIZAR EL
COMANDO:
EXEC CICS ABEND
ABCODE (código)
END-EXEC

EXCEPCIONES : NINGUNA

132
Program Control Program (PCP)
ABEND (Operandos)
ABCODE Especifica el nombre con el cual se Identificará
esa Tarea dentro del Dump Generado, en este
Dump estarán todas las Áreas asociadas a la
Transacción. Este nombre será el código
desplegado en la pantalla durante la Terminación
Anormal de la Transacción.

133
File Control Program (FCP)

FILE CONTROL PROGRAM (FCP), ES EL MODULO DE CONTROL


DE CICS, ENCARGADO DE PROVEER LOS MEDIOS Y RECURSOS
PARA FACILITAR EL ACCESO Y MANTENIMIENTO DE ARCHIVOS.
FCP REALIZA LAS SIGUIENTES FUNCIONES:
• ABRE Y CIERRA ARCHIVOS
• UTILIZA LA TABLA FCT PARA LA DEFINICION DE ARCHIVOS
• ADMINISTRA LAS AREAS DE TRABAJO DE I/O DE LOS REGISTROS
• TRANSFIERE DATOS ENTRE LAS AREAS DE LOS ARCHIVOS Y LA
DE LOS PROGRAMAS
• CONTROL EXCLUSIVO DE REGISTROS
• UTILIZA LOS METODOS DE ACCESO
- VSAM (KSDS, RRDS, ESDS)
- BDAM
- ISAM
RESTRICCIONES CON EL USO DE COBOL, VER PAGINA 49.
134
File Control Program (FCP)
READ
SE UTILIZA PARA REALIZAR LA CONSULTA DE INFORMACION
DE UN ARCHIVO, EL COMANDO READ, TIENE EL SIGUIENTE
FORMATO:
EXEC CICS READ
DATASET (Nombre)
INTO (Área) | SET (Apuntador)
RIDFLD (Área)
[ KEYLENGTH (Área) GENERIC]
EQUAL | GTE
RBA | RRN
UPDATE
LENGTH (valor)
SYSID (nombre)
END-EXEC
EXCEPCIONES : NOTFND, INVREQ, LENGERR, ILLOGIC, IOERR,
DUPKEY, NOTOPEN, DISABLED, NOTAUTH, ISCINVREQ, SYSIDERR
135
File Control Program (FCP)
READ (Operandos)
DATASET Especifica el nombre “lógico” del Archivo al cual
se desea accesar (1-8 caracteres).
INTO Especifica el Área de WS, en donde se dejará la
información correspondiente al registro leído.
SET Especifica la Dirección de Memoria en donde se
dejará la información correspondiente al registro
leído. Esta dirección de memoria debe de ser
especificada con una variable tipo “fullword”
( S9(9) COMP ó BINARY ).
RIDFLD Especifica la llave del registro, la dirección
relativa de memoria del registro (RBA) ó el
número relativo del registro (RRN), que será
buscado. En el caso de que se utilice RBA ó RRN,
el valor de estos deberá de estar contenido en
una variable tipo “fullword”.
136
File Control Program (FCP)
READ (Operandos)
KEYLENGTH Especifica el tamaño de la llave que se utilizó en
el operando RIDFLD, si se utilizó RBA ó RRN,
NO es necesario utilizar este operando. La
longitud de la llave deberá de estar contenida en
una variable tipo “halfword” ( S9(04) COMP ó
BINARY ).
GENERIC Especifica que se realizará una búsqueda genérica
partiendo de la porción de llave que se haya
indicado en el operando RIDFLD. No puede
utilizarse esta opción si se especificó el operando
UPDATE.
EQUAL Especifica que el resultado de la búsqueda será
satisfactorio si se encontró una llave (completa ó
genérica) IGUAL al dato indicado en el operando
RIDFLD.
137
File Control Program (FCP)
READ (Operandos)
GTEQ Especifica que el resultado de la búsqueda será
satisfactorio si se encontró una llave (completa ó
genérica) IGUAL ó MAYOR al dato indicado en el
operando RIDFLD.
RBA Especifica que el contenido del operando
RIDFLD, es una Dirección de Memoria Relativa,
en la cual se encontrará el Registro a buscar
(RBA).
RRN Especifica que el contenido del operando
RIDFLD, es un Número Relativo del Registro,
en el cual se encontrará el mismo (RRN).
UPDATE Especifica que el registro a ser leído será puesto
en estado de “lock”, hasta que se realice una
operación de Actualización ó Borrado del mismo.
No se puede utilizar este operando si se especifico
GENERIC ó GTEQ.
138
File Control Program (FCP)
READ (Operandos)
LENGTH Especifica la longitud del Registro a ser leído, se
debe de especificar con una variable tipo
“halfword”.
SYSID Especifica que el archivo al cual se desea accesar
se encuentra en otra región de CICS definido, se
debe de indicar en este operando el nombre de la
conexión (1-4 caracteres) que se tiene con la otra
región ó subsistema.

139
File Control Program (FCP)
WRITE
SE UTILIZA PARA ADICIONAR ó DAR DE ALTA REGISTROS A UN
ARCHIVO, EL COMANDO WRITE, TIENE EL SIGUIENTE
FORMATO:
EXEC CICS WRITE
DATASET (Nombre)
FROM (Área)
RIDFLD (Área)
MASSINSERT
RBA | RRN
LENGTH (valor)
SYSID (nombre)
END-EXEC
EXCEPCIONES : DUPREC, INVREQ, LENGERR, ILLOGIC, IOERR,
NOTOPEN, NOSPACE, DISABLED, NOTAUTH, ISCINVREQ, SYSIDERR

140
File Control Program (FCP)
WRITE (Operandos)
DATASET Especifica el nombre “lógico” del Archivo al cual
se desea agregar registros (1-8 caracteres).
FROM Especifica el Área de WS, de donde se tomará la
información correspondiente al registro a grabar.
RIDFLD Especifica la llave del registro, la dirección
relativa de memoria del registro (RBA) ó el
número relativo del registro (RRN), que será
agregado. En el caso de que se utilice RBA ó
RRN, el valor de estos deberá de estar contenido
en una variable tipo “fullword”.
MASSINSERT Especifica que la operación de WRITE, es parte
de una serie de operaciones masivas, de WRITE
al archivo.

141
File Control Program (FCP)
WRITE (Operandos)
RBA Especifica que el contenido del operando
RIDFLD, es una Dirección de Memoria Relativa,
en la cual deberá de ubicarse el Registro a
agregar (RBA).
RRN Especifica que el contenido del operando
RIDFLD, es un Número Relativo del Registro, en
el cual deberá de ubicarse el Registro a agregar
(RRN).
LENGTH Especifica la longitud del Registro a ser grabado,
se debe de especificar con una variable tipo
“halfword”.
SYSID Especifica que el archivo al cual se desea accesar
se encuentra en otra región de CICS definido, se
debe de indicar en este operando el nombre de la
conexión (1-4 caracteres) que se tiene con la otra
región ó subsistema.
142
File Control Program (FCP)
REWRITE
SE UTILIZA PARA ACTUALIZAR LA INFORMACION DE
REGISTROS DE UN ARCHIVO. PARA PODER REALIZARLO
PRIMERO SE DEBE DE LEER EL REGISTRO CON LA OPCION DE
UPDATE, DESPUES DAR REWRITE. EL COMANDO REWRITE,
TIENE EL SIGUIENTE FORMATO:
EXEC CICS REWRITE
DATASET (Nombre)
FROM (Área)
LENGTH (valor)
SYSID (nombre)
END-EXEC
EXCEPCIONES : DUPREC, INVREQ, LENGERR, ILLOGIC, IOERR,
NOSPACE, NOTAUTH, ISCINVREQ, SYSIDERR

143
File Control Program (FCP)
REWRITE (Operandos)
DATASET Especifica el nombre “lógico” del Archivo al cual
se desea actualizar registros (1-8 caracteres).
FROM Especifica el Área de WS, de donde se tomará la
información correspondiente al registro a
actualizar.
LENGTH Especifica la longitud del Registro a ser
actualizado, se debe de especificar con una
variable tipo “halfword”.
SYSID Especifica que el archivo al cual se desea accesar
se encuentra en otra región de CICS definido, se
debe de indicar en este operando el nombre de la
conexión (1-4 caracteres) que se tiene con la otra
región ó subsistema.

144
File Control Program (FCP)
DELETE
SE UTILIZA PARA DAR DE BAJA FISICAMENTE REGISTRO(S) DE
UN ARCHIVO. PARA PODER REALIZARLO SE TIENEN VARIOS
METODOS :
- LEER EL REGISTRO CON LA OPCION DE
UPDATE, DESPUES DAR DELETE

- REALIZAR LA BAJA DEL REGISTRO


DIRECTAMENTE (SIN LEERLO PREVIAMENTE)

- BORRAR UN GRUPO DE REGISTROS EN FORMA


GENERICA (OPERANDO GENERIC)

145
File Control Program (FCP)
DELETE
EL COMANDO DELETE, TIENE EL SIGUIENTE FORMATO:
EXEC CICS DELETE
DATASET (Nombre)
RIDFLD (Área)
KEYLENGTH (valor)
GENERIC
NUMREC (Área)
RBA | RRN
SYSID (nombre)
END-EXEC
EXCEPCIONES : INVREQ, LENGERR, ILLOGIC, IOERR, NOSPACE,
NOTAUTH, ISCINVREQ, SYSIDERR

146
File Control Program (FCP)
DELETE (Operandos)
DATASET Especifica el nombre “lógico” del Archivo al cual
se desean dar de baja registros (1-8 caracteres).
RIDFLD Especifica la llave del registro, la dirección
relativa de memoria del registro (RBA) ó el
número relativo del registro (RRN), que será
eliminado. En el caso de que se utilice RBA ó
RRN, el valor de estos deberá de estar contenido
en una variable tipo “fullword”.
KEYLENGTH Especifica el tamaño de la llave que se utilizó en
el operando RIDFLD, si se utilizó RBA ó RRN,
NO es necesario utilizar este operando. La
longitud de la llave deberá de estar contenida en
una variable tipo “halfword” (S9(04) COMP ó
BINARY).

147
File Control Program (FCP)
DELETE (Operandos)
GENERIC Especifica que se realizará una baja de registros
genérica partiendo de la porción de llave que se
haya indicado en el operando RIDFLD.
NUMREC Especifica que el número de Registros que se
hayan dado de Baja después de la operación
DELETE, será informado en una variable tipo
Halfword, la cual deberá de ser proporcionada en
este operando.
RBA Especifica que el contenido del operando
RIDFLD, es una Dirección de Memoria Relativa,
en la cual estará el Registro a dar de baja (RBA).
RRN Especifica que el contenido del operando
RIDFLD, es un Número Relativo del Registro, en
el cual estará el Registro a dar de baja (RRN).

148
File Control Program (FCP)
DELETE (Operandos)
SYSID Especifica que el archivo al cual se desea accesar
se encuentra en otra región de CICS definido, se
debe de indicar en este operando el nombre de la
conexión (1-4 caracteres) que se tiene con la otra
región ó subsistema.

149
File Control Program (FCP)
UNLOCK
AL MOMENTO EN QUE SE LEE UN REGISTRO CON LA OPCION
DE UPDATE, AUTOMATICAMENTE DICHO REGISTRO QUEDA EN
MODO EXCLUSIVO (NADIE LO PUEDE ACCESAR), Y SE LIBERA
HASTA DESPUES DE REALIZAR UNA OPERACIÓN DE
ACTUALIZACION AL ARCHIVO (REWRITE ó DELETE).
SI SE DECIDIERA NO REALIZAR DICHAS OPERACIONES DE
ACTUALIZACION, LA OTRA FORMA DE LIBERAR EL REGISTRO
ES CON EL COMANDO UNLOCK, EL CUAL TIENE EL SIGUIENTE
FORMATO:
EXEC CICS UNLOCK
DATASET (Nombre)
SYSID (nombre)
END-EXEC
EXCEPCIONES : NOTOPEN, DISABLED, NOTAUTH, ISCINVREQ,
SYSIDERR
150
File Control Program (FCP)
UNLOCK (Operandos)
DATASET Especifica el nombre “lógico” del Archivo al cual
se desea quitar el estado de LOCK (1-8
caracteres).
SYSID Especifica que el archivo al cual se desea accesar
se encuentra en otra región de CICS definido, se
debe de indicar en este operando el nombre de la
conexión (1-4 caracteres) que se tiene con la otra
región ó subsistema.

151
File Control Program (FCP)
BROWSE
CONSISTE EN LEER UN ARCHIVO EN MODO SECUENCIAL, PARA
PODER REALIZAR EL BROWSE, SE NECESITA:

• ESTABLECER LA POSICION (REGISTRO), EN LA CUAL SE


VA A INICIAR LA LECTURA SECUENCIAL.

• INICIAR LA LECTURA SECUENCIAL DE REGISTROS.

• INDICAR A CICS QUE EL BROWSE TERMINO.

152
File Control Program (FCP)
BROWSE ESTABLECE
POSICION
2

LEE SIG.
REGISTRO

SE SI
PROCESA? PROCESAR
1
REGISTRO

NO
1
FIN SI
BROWSE? TERMINAR
BROWSE

NO
2
153
File Control Program (FCP)
STARTBR
SE UTILIZA PARA ESTABLECER LA POSICION DE INICIO DEL
APUNTADOR LOGICO DE UN ARCHIVO, DE ESTA FORMA EL
ARCHIVO ESTARA LISTO PARA COMENZAR UN BROWSE. AL
EJECUTAR ESTE COMANDO, NO SE HA LEIDO NINGUN
REGISTRO. STARTBR TIENE EL SIGUIENTE FORMATO:
EXEC CICS STARTBR
DATASET (Nombre)
RIDFLD (Área)
[ KEYLENGTH (Área) GENERIC]
EQUAL | GTEQ
RBA | RRN
REQID (Área)
SYSID (nombre)
END-EXEC
EXCEPCIONES : NOTFND, INVREQ, ILLOGIC, IOERR, NOTOPEN,
DISABLED, NOTAUTH, ISCINVREQ, SYSIDERR
154
File Control Program (FCP)
STARTBR (Operandos)
DATASET Especifica el nombre “lógico” del Archivo en el
cual se desea realizar la lectura secuencial de
registros (1-8 caracteres).
RIDFLD Especifica la llave del registro, la dirección
relativa de memoria del registro (RBA) ó el
número relativo del registro (RRN), que será
en donde se posicione el apuntador lógico del
Archivo. En el caso de que se utilice RBA ó RRN,
el valor de estos deberá de estar contenido en
una variable tipo “fullword”.
KEYLENGTH Especifica el tamaño de la llave que se utilizó en
el operando RIDFLD, si se utilizó RBA ó RRN,
NO es necesario utilizar este operando. La
longitud de la llave deberá de estar contenida en
una variable tipo “halfword” (S9(04) COMP ó
BINARY).
155
File Control Program (FCP)
STARTBR (Operandos)
GENERIC Especifica que se realizará una busqueda genérica
partiendo de la porción de llave que se haya
indicado en el operando RIDFLD.
EQUAL Especifica que el resultado de la búsqueda será
satisfactorio si se encontró una llave (completa ó
genérica) IGUAL al dato indicado en el operando
RIDFLD.
GTEQ Especifica que el resultado de la búsqueda será
satisfactorio si se encontró una llave (completa ó
genérica) IGUAL ó MAYOR al dato indicado en el
operando RIDFLD.
RBA Especifica que el contenido del operando
RIDFLD, es una Dirección de Memoria Relativa,
en la cual se encontrará el Registro a buscar
(RBA).
156
File Control Program (FCP)
STARTBR (Operandos)
RRN Especifica que el contenido del operando
RIDFLD, es un Número Relativo del Registro,
en el cual se encontrará el mismo (RRN).
REQID Indica que se le asignará un número de
requerimiento al BROWSE. Esto es útil en los
casos que se esten realizando más de un
BROWSE, para un mismo Archivo . El número de
requerimiento deberá de ser indicado con una
variable tipo Halfword.
SYSID Especifica que el archivo al cual se desea accesar
se encuentra en otra región de CICS definido, se
debe de indicar en este operando el nombre de la
conexión (1-4 caracteres) que se tiene con la otra
región ó subsistema.

157
File Control Program (FCP)
READNEXT
SE UTILIZA PARA LEER EL SIGUIENTE REGISTRO EN UN
ARCHIVO QUE SE ENCUENTRE EN MODO DE BROWSE. EL
COMANDO READNEXT TIENE EL SIGUIENTE FORMATO:
EXEC CICS READNEXT
DATASET (Nombre)
INTO (Área) | SET (apuntador)
RIDFLD (Área)
KEYLENGTH (valor)
RBA | RRN
LENGTH (valor)
REQID (Área)
SYSID (nombre)
END-EXEC
EXCEPCIONES : NOTFND, INVREQ, LENGERR, ILLOGIC, IOERR,
ENDFILE, NOTAUTH, ISCINVREQ, SYSIDERR
158
File Control Program (FCP)
READNEXT (Operandos)
DATASET Especifica el nombre “lógico” del Archivo en el
cual se desea realizar la lectura del siguiente
registro en forma secuencial (1-8 caracteres).
RIDFLD Especifica la llave del registro, la dirección
relativa de memoria del registro (RBA) ó el
número relativo del registro (RRN), que será
deseado leer. En el caso de que se utilice RBA ó
RRN, el valor de estos deberá de estar contenido
en una variable tipo “fullword”.
KEYLENGTH Especifica el tamaño de la llave que se utilizó en
el operando RIDFLD, si se utilizó RBA ó RRN,
NO es necesario utilizar este operando. La
longitud de la llave deberá de estar contenida en
una variable tipo “halfword” (S9(04) COMP ó
BINARY).
159
File Control Program (FCP)
READNEXT (Operandos)
INTO Especifica el Área de WS, en donde se dejará la
información correspondiente al registro leído.
SET Especifica la Dirección de Memoria en donde se
dejará la información correspondiente al registro
leído. Esta dirección de memoria debe de ser
especificada con una variable tipo “fullword”
(S9(9) COMP ó BINARY).
RBA Especifica que el contenido del operando
RIDFLD, es una Dirección de Memoria Relativa,
en la cual se encontrará el Registro a buscar
(RBA).
RRN Especifica que el contenido del operando
RIDFLD, es un Número Relativo del Registro,
en el cual se encontrará el mismo (RRN).

160
File Control Program (FCP)
READNEXT (Operandos)
REQID Indica el número de requerimiento al cual se le
desea realizar el READNEXT. Este número de
requerimiento debió de haber sido indicado
previamente en un comando STARTBR. El
número de requerimiento deberá de ser indicado
con una variable tipo Halfword.
SYSID Especifica que el archivo al cual se desea accesar
se encuentra en otra región de CICS definido, se
debe de indicar en este operando el nombre de la
conexión (1-4 caracteres) que se tiene con la otra
región ó subsistema.
LENGTH Especifica la longitud del siguiente Registro a ser
leído, se debe de especificar con una variable tipo
“halfword”.

161
File Control Program (FCP)
READPREV
SE UTILIZA PARA LEER EL REGISTRO ANTERIOR, EN UN
ARCHIVO QUE SE ENCUENTRE EN MODO DE BROWSE. EL
COMANDO READPREV TIENE EL SIGUIENTE FORMATO:
EXEC CICS READPREV
DATASET (Nombre)
INTO (Área) | SET (apuntador)
RIDFLD (Área)
KEYLENGTH (valor)
RBA | RRN
LENGTH (valor)
REQID (Área)
SYSID (nombre)
END-EXEC
EXCEPCIONES : NOTFND, INVREQ, LENGERR, ILLOGIC, IOERR,
ENDFILE, NOTAUTH, ISCINVREQ, SYSIDERR
162
File Control Program (FCP)
READPREV(Operandos)
DATASET Especifica el nombre “lógico” del Archivo en el
cual se desea realizar la lectura del registro
anterior, en forma secuencial (1-8 caracteres).
RIDFLD Especifica la llave del registro, la dirección
relativa de memoria del registro (RBA) ó el
número relativo del registro (RRN), que será
deseado leer. En el caso de que se utilice RBA ó
RRN, el valor de estos deberá de estar contenido
en una variable tipo “fullword”.
KEYLENGTH Especifica el tamaño de la llave que se utilizó en
el operando RIDFLD, si se utilizó RBA ó RRN,
NO es necesario utilizar este operando. La
longitud de la llave deberá de estar contenida en
una variable tipo “halfword” (S9(04) COMP ó
BINARY).
163
File Control Program (FCP)
READPREV (Operandos)
INTO Especifica el Área de WS, en donde se dejará la
información correspondiente al registro leído.
SET Especifica la Dirección de Memoria en donde se
dejará la información correspondiente al registro
leído. Esta dirección de memoria debe de ser
especificada con una variable tipo “fullword”
(S9(9) COMP ó BINARY).
RBA Especifica que el contenido del operando
RIDFLD, es una Dirección de Memoria Relativa,
en la cual se encontrará el Registro a buscar
(RBA).
RRN Especifica que el contenido del operando
RIDFLD, es un Número Relativo del Registro,
en el cual se encontrará el mismo (RRN).

164
File Control Program (FCP)
READPREV (Operandos)
REQID Indica el número de requerimiento al cual se le
desea realizar el READPREV. Este número de
requerimiento debió de haber sido indicado
previamente en un comando STARTBR. El
número de requerimiento deberá de ser indicado
con una variable tipo Halfword.
SYSID Especifica que el archivo al cual se desea accesar
se encuentra en otra región de CICS definido, se
debe de indicar en este operando el nombre de la
conexión (1-4 caracteres) que se tiene con la otra
región ó subsistema.
LENGTH Especifica la longitud del Registro previo a ser
leído, se debe de especificar con una variable tipo
“halfword”.

165
File Control Program (FCP)
RESETBR
SE UTILIZA PARA REASIGNAR EL APUNTADOR LOGICO DEL
ARCHIVO (DURANTE UN BROWSE), HACIA UN NUEVO
REGISTRO E INICIAR UNA NUEVA LECTURA SECUENCIAL DE
REGISTROS. EL COMANDO RESETBR NO REALIZA LA LECTURA
DE REGISTROS Y TIENE EL SIGUIENTE FORMATO:
EXEC CICS RESETBR
DATASET (Nombre)
RIDFLD (Área)
[KEYLENGTH (valor) GENERIC]
RBA | RRN
GTEQ | EQUAL
REQID (Área)
SYSID (nombre)
END-EXEC
EXCEPCIONES : NOTFND, INVREQ, ILLOGIC, IOERR, NOTAUTH,
ISCINVREQ, SYSIDERR 166
File Control Program (FCP)
RESETBR (Operandos)
DATASET Especifica el nombre “lógico” del Archivo en el
cual se desea realizar reposicionamiento del
apuntador lógico, para iniciar la lectura en forma
secuencial (1-8 caracteres).
RIDFLD Especifica la llave del registro, la dirección
relativa de memoria del registro (RBA) ó el
número relativo del registro (RRN), en donde se
desea ubicar el apuntador lógico. En el caso de
que se utilice RBA ó RRN, el valor de estos
deberá de estar contenido en una variable tipo
“fullword”.
REQID Indica que se le asignará un número de
requerimiento al BROWSE. El número de
requerimiento deberá de ser indicado con una
variable tipo Halfword.
167
File Control Program (FCP)
RESETBR (Operandos)
KEYLENGTH Especifica el tamaño de la llave que se utilizó en
el operando RIDFLD, si se utilizó RBA ó RRN,
NO es necesario utilizar este operando. La
longitud de la llave deberá de estar contenida en
una variable tipo Halfword.
GENERIC Especifica que se realizará una busqueda genérica
partiendo de la porción de llave que se haya
indicado en el operando RIDFLD.
RBA Especifica que el contenido del operando
RIDFLD, es una Dirección de Memoria Relativa,
en la cual se encontrará el Registro a buscar
(RBA).
RRN Especifica que el contenido del operando
RIDFLD, es un Número Relativo del Registro,
en el cual se encontrará el mismo (RRN).
168
File Control Program (FCP)
RESETBR (Operandos)
EQUAL Especifica que el resultado de la búsqueda será
satisfactorio si se encontró una llave (completa ó
genérica) IGUAL al dato indicado en el operando
RIDFLD.
GTEQ Especifica que el resultado de la búsqueda será
satisfactorio si se encontró una llave (completa ó
genérica) IGUAL ó MAYOR al dato indicado en el
operando RIDFLD.
SYSID Especifica que el archivo al cual se desea accesar
se encuentra en otra región de CICS definido, se
debe de indicar en este operando el nombre de la
conexión (1-4 caracteres) que se tiene con la otra
región ó subsistema.

169
File Control Program (FCP)
ENDBR
SE UTILIZA PARA INDICAR LA TERMINACION DE UN MODO
BROWSE EN UN ARCHIVO. EL COMANDO ENDBR TIENE EL
SIGUIENTE FORMATO:
EXEC CICS ENDBR
DATASET (Nombre)
REQID (Área)
SYSID (nombre)
END-EXEC
EXCEPCIONES : INVREQ, ILLOGIC, NOTAUTH, ISCINVREQ,
SYSIDERR

170
File Control Program (FCP)
ENDBR (Operandos)
DATASET Especifica el nombre “lógico” del Archivo al cual
se desea terminar el modo de BROWSE (1-8
caracteres).
REQID Indica a que número de requerimiento se le desea
terminar el modo de BROWSE en el archivo.
SYSID Especifica que el archivo al cual se desea accesar
se encuentra en otra región de CICS definido, se
debe de indicar en este operando el nombre de la
conexión (1-4 caracteres) que se tiene con la otra
región ó subsistema.

171
Transient Data
TRANSIENT DATA CONTROL ES UNA FACILIDAD QUE CICS
PROVEE, PARA PODER REALIZAR UN ENCOLAMIENTO
(ALMACENAMIENTO) DE INFORMACION, DESPUES ESTA
INFORMACION PUEDE SER PROCESADA POR APLICACIONES
INTERNAS ó EXTERNAS A CICS.
LA INFORMACION ES ALMACENADA EN ARCHIVOS
SECUENCIALES LLAMADOS COLAS DE TRANSIENT DATA.
CADA COLA DE TRANSIENT DATA SE DEFINE COMO UN
DESTINO (NOMBRE DE CUATRO CARACTERES), EN LA
DESTINATION CONTROL TABLE (DCT).
LOS DESTINOS DE TRANSIENT DATA PUEDEN SER
INTRAPARTICION ó EXTRAPARTICION.
CON TRANSIENT DATA PODEMOS : ESCRIBIR EN UNA COLA DE
TD (WRITEQ TD), LEER DE UNA COLA DE TD (READQ TD) Y
BORRAR UNA COLA DE TD (DELETEQ TD, SOLO PARA
DESTINOS INTRAPARTICION)
172
Transient Data
Destinos Extrapartición
LOS DESTINOS EXTRAPARTICION SON COLAS (ARCHIVOS)
RESIDENTES EN CUALQUIER DISPOSITIVO SECUENCIAL
(CINTA, ARCHIVO PLANO, IMPRESORA, ETC), LOS CUALES
PUEDEN SER ACCESADOS POR PROGRAMAS FUERA ó DENTRO
DE LA REGION DE CICS.
POR LO GENERAL ESTE TIPO DE DESTINOS ES UTILIZADA PARA
ALMACENAR Y ENVIAR INFORMACION FUERA DE LA REGION DE
CICS, ESTA INFORMACION COMUNMENTE ES EXPLOTADA POR
PROCESOS BATCH ó RUTEADA HACIA LA SALIDA DE UNA
IMPRESORA.
LOGS DE SISTEMAS, ESTADISTICAS, JOURNALS, MENSAJES DE
ERROR DE TRANSACCIONES SON ALGUNOS DE LOS USOS QUE
SE LE DA A ESTE TIPO DE DESTINOS.

173
Transient Data
Destinos Extrapartición
LA INFORMACION DE UN DESTINO EXTRAPARTICION,
CONSISTE FISICAMENTE EN REGISTROS SECUENCIALES
BLOQUEADOS ó NO Y DE LONGITUD FIJA ó VARIABLE. EL
FORMATO DE UN REGISTRO EN UN DESTINO EXTRAPARTICION,
DEBE DE SER DEFINIDO EN LA DESTINATION CONTROL TABLE
(DCT) POR EL SYSTEM PROGRAMMER.
UNA COLA DE TRANSIENT DATA (DESTINO EXTRAPARTICION)
NO PUEDE SER BORRADO, SI SE INTENTA HACER ESTO, SE
PRESENTARIA LA CONDICION DE INVREQ AL EJECUTAR EL
COMANDO.

174
Transient Data
Destinos Intrapartición
UN DESTINO INTRAPARTICION CONSISTE EN UN ARCHIVO DE
ACCESO DIRECTO, EL CUAL ES CREADO Y ACCESADO DENTRO
DE LA PARTICION DE CICS.
LA INFORMACION DE UN DESTINO INTRAPARTICION,
CONSISTE FISICAMENTE EN REGISTROS DE LONGITUD
VARIABLE Y PUEDE SER USADO POR MAS DE UNA TAREA.
UNA VEZ QUE UN REGISTRO SE HA ACCESADO (READQ), NO
PUEDE VOLVER A LEERSE YA QUE AL MOMENTO DE LEERSE ES
BORRADO AUTOMATICAMENTE DE LA COLA.
LA INFORMACION CONTENIDA EN UNA COLA DE TRANSIENT
DATA (DESTINO INTRAPARTICION), PUEDE SER PROCESADA
DE FORMA AUTOMATICA, DENTRO DE LA REGION DE CICS.

175
Transient Data
WRITEQ TD
SE UTILIZA PARA GRABAR UN REGISTRO EN UNA COLA DE
TRANSIENT DATA (EXTRAPARTICION E INTRAPARTICION). EL
COMANDO WRITEQ TD TIENE EL SIGUIENTE FORMATO:
EXEC CICS WRITEQ TD
QUEUE (Nombre Cola)
FROM (Área)
LENGTH (Longitud)
SYSID (Nombre)
END-EXEC
EXCEPCIONES : LENGERR, NOSPACE, QIDERR, IOERR, NOTOPEN,
NOTAUTH, ISCINVREQ, SYSIDERR

176
Transient Data
WRITEQ TD (Operandos)
QUEUE Especifica el nombre del Destino de Transient
Data (Extrapartición e Intrapartición), que se
haya definido en la DCT (1-4 caracteres).
FROM Indica el área de WS, en donde se encuentra la
información ó registro a ser grabado en la cola de
Transient Data.
LENGTH Especifica la longitud del Registro ó de la
información a grabar, se debe de especificar con
una variable tipo “halfword”.
SYSID Especifica que el destino al cual se desea accesar
se encuentra en otra región de CICS definido, se
debe de indicar en este operando el nombre de la
conexión (1-4 caracteres) que se tiene con la otra
región ó subsistema.

177
Transient Data
READQ TD
SE UTILIZA PARA LEER UN REGISTRO DE UNA COLA DE
TRANSIENT DATA (EXTRAPARTICION E INTRAPARTICION). EL
COMANDO READQ TD TIENE EL SIGUIENTE FORMATO:
EXEC CICS READQ TD
QUEUE (Nombre Cola)
INTO (Área) | SET (Apuntador)
LENGTH (Longitud)
SYSID (Nombre)
END-EXEC
EXCEPCIONES : LENGERR, QZERO, QIDERR, IOERR, NOTOPEN,
QBUSY, NOTAUTH, ISCINVREQ, SYSIDERR

178
Transient Data
READQ TD (Operandos)
QUEUE Especifica el nombre del Destino de Transient
Data (Extrapartición e Intrapartición), que se
haya definido en la DCT (1-4 caracteres).
INTO Indica el área de WS, en donde se dejará la
información ó registro leido de la cola de
Transient Data.
SET Especifica la Dirección de Memoria en donde se
dejará la información correspondiente al registro
leído de TD. Esta dirección de memoria debe de
ser especificada con una variable tipo “fullword”.
LENGTH Especifica la longitud del Registro leído de TD, se
debe de especificar con una variable tipo
“halfword”.

179
Transient Data
READQ TD (Operandos)
SYSID Especifica que el destino al cual se desea accesar
se encuentra en otra región de CICS definido, se
debe de indicar en este operando el nombre de la
conexión (1-4 caracteres) que se tiene con la otra
región ó subsistema.

180
Transient Data
DELETEQ TD
SE UTILIZA PARA BORRAR UNA COLA DE TRANSIENT DATA
(SOLO PARA DESTINOS INTRAPARTICION), EL RESULTADO
ES QUE BORRA TODA LA COLA. EL COMANDO DELETEQ TD
TIENE EL SIGUIENTE FORMATO:
EXEC CICS DELETEQ TD
QUEUE (Nombre Cola)
SYSID (Nombre)
END-EXEC
EXCEPCIONES : INVREQ, QIDERR, NOTAUTH, ISCINVREQ, SYSIDERR

181
Transient Data
DELETEQ TD (Operandos)
QUEUE Especifica el nombre del Destino de Transient
Data (Extrapartición e Intrapartición), que se
haya definido en la DCT (1-4 caracteres).
SYSID Especifica que el destino al cual se desea eliminar
se encuentra en otra región de CICS definido, se
debe de indicar en este operando el nombre de la
conexión (1-4 caracteres) que se tiene con la otra
región ó subsistema.

182
Transient Data
Automatic Transaction Initiation (ATI)
CON INFORMACION CORRESPONDIENTE A DESTINOS
TRANSIENT DATA DE INTRAPARTICION, UNA TRANSACCION
PUEDE SER INICIADA EN FORMA AUTOMATICA, USANDO PARA
ESTO UN NIVEL DE DISPARO (TRIGGER LEVEL).
ESTE NIVEL DE DISPARO ES UN NUMERO DEFINIDO AL
MOMENTO DE GENERAR LA COLA DE TRANSIENT DATA EN LA
DCT Y REPRESENTA EL NUMERO MAXIMO DE REGISTROS QUE
SE DEBEN DE ACUMULAR ANTES DE QUE LA TRANSACCION SEA
INICIADA EN FORMA AUTOMATICA, AL COMPLETARSE ESTE
NUMERO, CICS INICIA LA TRANSACCION SI:
• LA TERMINAL ASOCIADA A LA TRANSACCION ESTA EN
ACTIVA.
• LA TERMINAL ASOCIADA A LA TRANSACCION, NO ESTE
EN USO POR OTRA TAREA EN CURSO
183
Transient Data ATI
CICS/VS
DCT TCT
DFHDCT DFHTCT
TYPE=INTRA, TYPE=TERMINAL,
DESTID=PRT1, TRMIDNT=PRT1 REPORTE
DFHNTRA TRIGLEV=50,
TRANSID=WRTE

WRITER
PROG. 1 ...
... PCT EXEC CICS
EXEC CICS READQ TD
TERMINAL QUEUE (PRT1)
WRITEQ TD
QUEUE (PRT1) DFHPCT ...
... TYPE=ENTRY, END-EXEC
END-EXEC TRANSID=WRTE, ..
PROGRAM= EXEC CICS
WRITER SEND ...
..
END-EXEC

184
Temporary Storage
TEMPORARY STORAGE ES UNA FACILIDAD QUE CICS
PROVEE, PARA PODER ALMACENAR INFORMACION EN FORMA
TEMPORAL, LA CUAL PUEDE SER PROCESADA
POSTERIORMENTE POR PROGRAMAS QUE RESIDAN DENTRO DE
CICS.
ESTA FACILIDAD LA USAN LOS PROGRAMAS CONTROLADORES
DE CICS, Y TAMBIEN PUEDE SER UTILIZADA POR PROGRAMAS
APLICATIVOS.
LOS REGISTROS DE TEMPORARY STORAGE SON DE
LONGITUD VARIABLE. TEMPORARY STORAGE CONTROL
PROGRAMA (TSP) CREA ESTOS REGISTROS YA SEA EN
MEMORIA (MAIN) ó EN DISCO (AUXILIARY).
CADA REGISTRO TIENE UNA IDENTIFICACION QUE SE DEFINE
AL MOMENTO DE LA CREACION DEL MISMO (AL GRABAR LA
COLA DE TS), ESTA IDENTIFICACION DEBE DE SER DE 1 A 8
CARACTERES.
185
Temporary Storage
CADA REGISTRO TIENE UNA IDENTIFICACION UNICA ó VARIOS
REGISTROS PUEDEN TENER LA MISMA IDENTIFICACION,
FORMANDO DE ESTA MANERA UNA COLA DE TEMPORARY
STORAGE ó MESSAGE SET.
LOS REGISTROS DE UNA COLA DE TS, SE PUEDEN ACCESAR EN
FORMA SECUENCIAL ó DIRECTA.
LA INFORMACION DE TEMPORARY STORAGE SE PUEDE
ACCESAR VARIAS VECES, HASTA QUE ES BORRADA
EXPLICITAMENTE LA COLA DE TS.
LOS NOMBRES DE LAS COLAS DE TS, DEBEN DE SER UNICOS,
Y NO ES NECESARIO DEFINIRLAS PREVIAMENTE EN ALGUNA
TABLA DE CONTROL DE CICS.

186
Temporary Storage
WRITEQ TS
SE UTILIZA PARA GRABAR UN REGISTRO EN UNA COLA DE
TEMPORARY STORAGE. EL COMANDO WRITEQ TS TIENE EL
SIGUIENTE FORMATO:
EXEC CICS WRITEQ TS
QUEUE (Nombre Cola)
FROM (Área)
LENGTH (Longitud)
ITEM (Número) [ REWRITE ]
MAIN | AUXILIARY
SYSID (Nombre)
NOSUSPEND
END-EXEC
EXCEPCIONES : NOSPACE, QIDERR, INVREQ, NOTAUTH, ISCINVREQ,
SYSIDERR

187
Temporary Storage
WRITEQ TS (Operandos)
QUEUE Especifica el nombre (1-8 caracteres) de la Cola
de Temporary Storage a grabar, este nombre
es recomendable que sea único y por lo general
esta formado por 4 caracteres que indican el
User-ID y por 4 caracteres que son el
identificador de la terminal (EIBTRMID).
FROM Indica el área de WS, en donde se encuentra la
información ó registro a ser grabado en la cola de
Temporary Storage.
LENGTH Especifica la longitud del Registro ó de la
información a grabar, se debe de especificar con
una variable tipo “halfword”.
ITEM Especifica el número de registro (posición que va
a tener el registro dentro de la cola de TS) que se
desea grabar, se debe de especificar con una
variable tipo “halfword”.
188
Temporary Storage
WRITEQ TS (Operandos)
REWRITE Indica que el registro al que se le va a efectuar la
operación, es un registro ya existente al cual se le
desea actualizar la información.
MAIN Indica que el área en donde se desea dejar la
información grabada, se ubique en “Memoria”.
AUXILIARY Indica que el área en donde se desea dejar la
información grabada, se ubique en “Disco”.
SYSID Especifica que la cola de TS, a la cual se desea
accesar se encontrará definida en otra región de
CICS, se debe de indicar en este operando el
nombre de la conexión (1-4 caracteres) que se
tiene con la otra región ó subsistema.
NOSUSPEND Indica que no suspenderá la ejecución del
programa que se encuentra grabando la cola de
TS, si se presenta la condición de NOSPACE
(sólo para colas en disco MAIN).
189
Temporary Storage
READQ TS
SE UTILIZA PARA LEER UN REGISTRO DE UNA COLA DE
TEMPORARY STORAGE. EL COMANDO READQ TS TIENE EL
SIGUIENTE FORMATO:
EXEC CICS READQ TS
QUEUE (Nombre Cola)
INTO (Área) | SET (Apuntador)
LENGTH (Longitud)
ITEM (Número) | NEXT
SYSID (Nombre)
END-EXEC
EXCEPCIONES : LENGERR, QIDERR, IOERR, INVREQ, NOTAUTH,
ISCINVREQ, SYSIDERR

190
Temporary Storage
READQ TS (Operandos)
QUEUE Especifica el nombre (1-8 caracteres) de la Cola
de Temporary Storage a leer.
INTO Indica el área de WS, en donde se dejará la
información ó registro leido de la cola de TS.
SET Especifica la Dirección de Memoria en donde se
dejará la información correspondiente al registro
leído de TS. Esta dirección de memoria debe de
ser especificada con una variable tipo “fullword”.
LENGTH Especifica la longitud del Registro ó de la
información a leer, se debe de especificar con
una variable tipo “halfword”.
ITEM Especifica el número de registro (posición que
tiene el registro dentro de la cola de TS) que se
desea leer, se debe de especificar con una
variable tipo “halfword”.

191
Temporary Storage
READQ TS (Operandos)
NEXT Indica que leerá el siguiente registro disponible
que se encuentre grabado en la cola de TS
(lectura secuencial).
SYSID Especifica que la cola de TS, a la cual se desea
accesar se encuentra definida en otra región de
CICS, se debe de indicar en este operando el
nombre de la conexión (1-4 caracteres) que se
tiene con la otra región ó subsistema.

192
Temporary Storage
DELETEQ TS
SE UTILIZA PARA BORRAR UNA COLA DE TEMPORARY
STORAGE. EL COMANDO DELETEQ TS TIENE EL SIGUIENTE
FORMATO:

EXEC CICS DELETEQ TS


QUEUE (Nombre Cola)
SYSID (Nombre)
END-EXEC
EXCEPCIONES : INVREQ, QIDERR, NOTAUTH, ISCINVREQ, SYSIDERR

193
Temporary Storage
DELETEQ TS (Operandos)
QUEUE Especifica el nombre de la cola de Temporary
Storage que se desea borrar (1-4 caracteres).
SYSID Especifica que la cola a la cual se desea eliminar
se encuentra en otra región de CICS definida, se
debe de indicar en este operando el nombre de la
conexión (1-4 caracteres) que se tiene con la otra
región ó subsistema.

194
Diferencias entre TD y TS

TEMPORARY
TRANSIENT DATA
STORAGE
4 CARACTERES
NOMBRE DE LOS NOMBRE DEL DESTINO
8 CARACTERES
NO
DATOS DEFINIDO EN DCT PREDEFINIDA

SOPORTE DE DISCO, CINTA, ETC


MEMORIA
ARCHIVO DISCO

SECUENCIAL
ACCESO SECUENCIAL
DIRECTO

VECES QUE PUEDE UNA “N” VECES


SER LEIDO
ARRANQUE SI NO
AUTOMATICO (ATI)
WRITEQ TD WRITEQ TS
COMANDOS READQ TD READQ TS
DELETEQ TD DELETEQ TS

195
Modulo V:

MODULARIDAD Y
ESTRUCTURAS
“CLIENTE-
SERVIDOR” EN
PROGRAMAS CICS
196
Diseño Típico en Sistemas MF
PARA UNA APLICACIÓN TIPICA, LA CUAL COMUNMENTE PODRIA
CONSTAR DE LA SIGUIENTE FUNCIONALIDAD:

• CONSULTAS
• CONSULTA POR NOMBRE
• CONSULTA POR NUMERO DE CLIENTE
• CONSULTA POR RFC
• ALTAS
• ALTA DATOS BASICOS DEL CLIENTE
• ALTA DATOS CLIENTES PERSONAS FISICAS
• ALTA DATOS CLIENTES PERSONAS MORALES
• MODIFICACIONES
• MODIFICACION DATOS BASICOS DEL CLIENTE
• MODIFICACION DATOS CLIENTES PERSONAS
FISICAS
• MODIFICACION DATOS CLIENTES PERSONAS
MORALES
197
Diseño Típico en Sistemas MF
EL DISEÑO TIPICO QUE SE REALIZARIA PARA ESTA
APLICACIÓN SERIA:

PROGRAMA MENU

PROGRAMA PROGRAMA PROGRAMA


CONSULTAS ALTAS MODIFICACIONES
-VALIDACION DE INF. Y TECLAS -VALIDACION DE INF. Y TECLAS
-VALIDACION DE INF. Y TECLAS DE FUNCION DE LA PANTALLA DE FUNCION DE LA PANTALLA
DE FUNCION DE LA PANTALLA -VALIDACION DE DATOS PARA -VALIDACION DE DATOS PARA
-CONSULTA POR NOMBRE LAS ALTAS (UNA X CADA ALTA) LAS MODIF. (UNA X C/MODIF.)
- CONSULTA POR NUM. CLIENTE - ALTA DATOS BASICOS CTE. - MODIF. DATOS BASICOS CTE.
- CONSULTA POR RFC - ALTA DATOS CTES. PERSONAS - MODIFICACION DATOS CTES.
- FORMATEO DE INFORMACION FISICAS PERSONAS FISICAS
- ALTA DATOS CTES. PERSONAS - MODIFICACION DATOS CTES.
MORALES PERSONAS MORALES
- FORMATEO DE INFORMACION - FORMATEO DE INFORMACION
198
Diseño Típico en Sistemas MF
LAS DESVENTAJAS QUE ESTE DISEÑO PODRIA PRESENTAR
SERIAN LAS SIGUIENTES:

• COMPLEJIDAD ALTA PARA LOS PROGRAMAS


• NUMERO DE LINEAS ALTO PARA CADA PROGRAMA
• PROBLEMÁTICA PARA LA ESTRUCTURACION DE RUTINAS
DENTRO DE CADA PROGRAMA
• ALTA COMPLEJIDAD PARA EFECTUAR EL MANTENIMIENTO
POSTERIOR DE CADA PROGRAMA
• POR CADA MODIFICACION REALIZADA A UNA FUNCION
ESPECIFICA, IMPLICA PROBAR TODAS LAS FUNCIONES
QUE EL PROGRAMA MANEJE
• DEPENDENCIA DE PERSONAL “ESPECIALIZADO” EN EL
SISTEMA (PROGRAMAS ESPECIFICOS)

199
Diseño Típico en Sistemas MF

• CODIGO CARGADO INNECESARIAMENTE EN MEMORIA,


AL MOMENTO DE EJECUCION DE LA TRANSACCION
• TIEMPO DE RESPUESTA AFECTADO, EN APLICACIONES
CRITICAS (ALTO VOLUMEN DE TRANSACCIONALIDAD)
• POCA REUSABILIDAD DE RUTINAS Y COMPONENTES DEL
SISTEMA

200
Modularidad y Estructuras
“Cliente/Servidor”
Modularidad
CONCEPTO MANEJADO EN EL ANALISIS Y DISEÑO DE
APLICACIONES, EL CUAL BUSCA IDENTIFICAR Y SEGMENTAR
LAS FUNCIONES CON LAS QUE CONTARA UN SISTEMA, CON
LA FINALIDAD DE CREAR COMPONENTES (PROGRAMAS) QUE
ATIENDAN EXCLUSIVAMENTE UNA FUNCION ESPECIFICA DEL
MISMO.

“Cliente/Servidor”
COMPONENTES (PROGRAMAS) DE UN SISTEMA LOS CUALES
ATIENDEN UNA FUNCION ESPECIFICA DEL MISMO.
• CLIENTE. PROGRAMA QUE ATIENDE UNA SOLICITUD ó PETICION
DEL SISTEMA Y QUE PARA RESOLVER ESTA, PUEDE HACER LLAMADO A
UN PROGRAMA “SERVIDOR”.
• SERVIDOR. PROGRAMA QUE ATIENDE UNA SOLICITUD REALIZADA
POR UN PROGRAMA “CLIENTE” Y QUE PARA RESOLVER ESTA, A SU VEZ,
PUEDE HACER UN LLAMADO HACIA OTRO PROGRAMA “SERVIDOR”
201
Diseño Modular basado en
Estructuras “Cliente/Servidor”
EL DISEÑO PARA LA APLICACIÓN EJEMPLO, SERIA:

PROGRAMA MENU

PROGRAMA PROGRAMA PROGRAMA


“CLIENTE” “CLIENTE” “CLIENTE”
CONSULTAS ALTAS MODIFICACIONES
-VALIDACION DE INF. Y TECLAS -VALIDACION DE INF. Y TECLAS -VALIDACION DE INF. Y TECLAS
DE FUNCION DE LA PANTALLA DE FUNCION DE LA PANTALLA DE FUNCION DE LA PANTALLA
-EVALUA QUE TIPO DE -EVALUA TIPO DE ALTA SE -EVALUA QUE TIPO DE
CONSULTA SE DESEA DESEA REALIZAR MODIFICACION SE DESEA
REALIZAR REALIZAR

202
Diseño Modular basado en
Estructuras “Cliente/Servidor”

PROGRAMA
“CLIENTE”
CONSULTAS

“SERVIDOR” “SERVIDOR” “SERVIDOR”


CONSULTA POR NOMBRE CONSULTA POR NUM. DE CONSULTA POR RFC
CLIENTE
ACCESO A DATOS EXCLUSIVOS ACCESO A DATOS EXCLUSIVOS ACCESO A DATOS EXCLUSIVOS
PARA ESTA FUNCION PARA ESTA FUNCION PARA ESTA FUNCION

“SERVIDOR”
VALIDACION Y FORMATEO
DE DATOS P/DESPLIEGUE

203
Diseño Modular basado en
Estructuras “Cliente/Servidor”

PROGRAMA
“CLIENTE”
ALTAS

“SERVIDOR” “SERVIDOR” “SERVIDOR”


ALTA DATOS BASICOS ALTA DATOS PERSONAS ALTA DATOS PERSONAS
FISICAS MORALES
INSERTA DATOS EXCLUSIVOS INSERTA DATOS EXCLUSIVOS INSERTA DATOS EXCLUSIVOS
PARA ESTA FUNCION PARA ESTA FUNCION PARA ESTA FUNCION

“SERVIDOR”
VALIDACION Y FORMATEO
DE DATOS P/ENTRADA EN
LA BASE DE DATOS

204
Diseño Modular basado en
Estructuras “Cliente/Servidor”

PROGRAMA
“CLIENTE”
MODIFICACIONES

“SERVIDOR” “SERVIDOR” “SERVIDOR”


MODIF. DATOS BASICOS MODIF. DATOS PERSONAS MODIF. DATOS PERSONAS
FISICAS MORALES
ACTUALIZA DATOS EXCLUSIVOS ACTUALIZA DATOS EXCLUSIVOS ACTUALIZA DATOS EXCLUSIVOS
PARA ESTA FUNCION PARA ESTA FUNCION PARA ESTA FUNCION

“SERVIDOR”
VALIDACION Y FORMATEO
DE DATOS P/ENTRADA EN
LA BASE DE DATOS
(MISMO SERVIDOR QUE UTILIZAN
LAS “ALTAS”)

205
Diseño Modular basado en
Estructuras “Cliente/Servidor”
LAS VENTAJAS QUE ESTE DISEÑO PRESENTARA SON LAS
SIGUIENTES:

• COMPLEJIDAD BAJA PARA LOS PROGRAMAS


• NUMERO DE LINEAS BAJO PARA CADA PROGRAMA
• ESTRUCTURACION SENCILLA DE RUTINAS DENTRO DE
CADA PROGRAMA
• BAJA COMPLEJIDAD PARA EFECTUAR EL MANTENIMIENTO
POSTERIOR DE CADA PROGRAMA
• POR CADA MODIFICACION REALIZADA A UNA FUNCION
ESPECIFICA, IMPLICA SOLO PROBAR DICHA FUNCION
ESPECIFICA DEL SISTEMA
• FACIL CONOCIMIENTO DE LAS FUNCIONES DEL SISTEMA,
LO CUAL IMPLICARIA LA NO DEPENDENCIA DE PERSONAL
“ESPECIALIZADO” EN EL MISMO

206
Diseño Modular y con Estructura
“Cliente/Servidor”

• EL CODIGO QUE SE ENCUENTRA CARGADO EN MEMORIA,


AL MOMENTO DE EJECUCION DE LA TRANSACCION, ES
EXTRICTAMENTE EL NECESARIO PARA LA FUNCION QUE
ESTA ATENDIENDO EL SISTEMA
• TIEMPO DE RESPUESTA OPTIMO, EN APLICACIONES
CRITICAS (ALTO VOLUMEN DE TRANSACCIONALIDAD)
• ALTA REUSABILIDAD DE RUTINAS Y COMPONENTES DEL
SISTEMA

207
Modulo VI:

TIPOS DE
ARQUITECTURA DE
CICS

208
Arquitectura “Sencilla”
SE BASA EN QUE UNA SOLA REGION DE CICS TIENE EL
CONTROL Y LA DISPONIBILIDAD DE LOS RECURSOS
NECESARIOS PARA SATISFACER LA DEMANDA DE
TRANSACCIONES APLICATIVAS. RECURSOS NECESARIOS
COMO:

• TERMINALES
• PROGRAMAS APLICATIVOS
• ACCESO A ARCHIVOS O BASES DE DATOS

SE UTILIZA ESTE TIPO DE ARQUITECTURA PARA APLICACIONES


QUE NO TIENEN UN VOLUMEN CRITICO DE TRANSACCIONES.

209
Arquitectura “Sencilla”

OS / 390
ARCHIVOS
TERMINALES
CICS
BASES
DE DATOS

PROGRAMAS

APLICATIVOS

210
Arquitectura “Compuesta”
SE BASA EN QUE MAS DE UNA REGION DE CICS TIENEN EL
CONTROL Y LA DISPONIBILIDAD DE LOS RECURSOS
NECESARIOS PARA SATISFACER LA DEMANDA DE
TRANSACCIONES APLICATIVAS. LA DISTRIBUCION Y FUNCION
DE CADA UNA DE LAS REGIONES DE CICS INTERCONECTADAS,
ES LA SIGUIENTE:
• TOR (TERMINAL OWNER REGION). ESTA REGION DE
CICS, ESTA SOLO ENCARGADA DE LA INTERCOMUNICACION DE
LAS TRANSACCIONES APLICATIVAS CON LAS TERMINALES,
ADEMAS DEL LOGON Y LOGOFF DE ELLAS.
• AOR (APLICATION OWNER REGION). ESTA REGION DE
CICS, ES EN DONDE RESIDEN LOS PROGRAMAS APLICATIVOS
(PROGRAMAS, MAPAS), Y ES EN DONDE SE RESUELVE LA
EJECUCION DE CADA UNA DE LAS TRANSACCIONES
APLICATIVAS.

211
Arquitectura “Compuesta”

• FOR (FILE OWNER REGION). ESTA REGION ES LA QUE SE


ENCUENTRA ENCARGADA DE LOS ACCESOS Y COMUNICACIÓN
ENTRE EL CICS v.s. ARCHIVOS Y/O BASES DE DATOS.

ESTE TIPO DE ARQUITECTURA ES UTILIZADA EN


APLICACIONES EN LAS CUALES EXISTEN UN VOLUMEN ALTO DE
TRANSACCIONALIDAD.
GENERALMENTE MONTAN SOBRE ESTE TIPO DE ARQUITECTURA
UNA ó VARIAS APLICACIONES CRÍTICAS. ASI MISMO
DEPENDIENDO DEL VOLUMEN DE TRANSACCIONES, ES COMUN
ENCONTRAR MAS DE UNA REGION TOR, AOR ó FOR,
INTERCONECTADAS EN UNA ARQUITECTURA COMPUESTA.

212
Arquitectura “Compuesta”

OS / 390
TERMINALES
CICS
TOR

PROGS CICS CICS PROGS


APLIC.
AOR AOR APLIC.

ARCHIVOS
CICS BASES
FOR DE DATOS

213
Modulo VII:

AMBIENTACION DE
APLICACIONES EN
CICS

214
Transacciones para Ambientación
y Monitoreo de Aplicaciones
CEDA [opción tipo-recurso(nombre recurso)]
TRANSACCION PROPIA DEL CICS, LA CUAL TIENE LA
SIGUIENTE FUNCIONALIDAD:
• PERMITE LA DEFINICION Y MODIFICACION DEL MEDIO
AMBIENTE DE EJECUCION PARA UNA APLICACIÓN.
• GRUPOS
• PROGRAMAS
• MAPAS
• ARCHIVOS
• CONEXIONES
• TERMINALES, ETC
• UTILIZA LAS TABLAS DE CONTROL DE CICS.
• EXISTEN TRANSACCIONES ALTERNAS QUE REALIZAN
ESTA FUNCION CEDB, CEDC, LA DIFERENCIA ES QUE
ESTAS TIENEN MENOR AUTORIDAD SOBRE LOS RECURSOS
A DEFINIR (RESTRICCIONES PARA LA DEFINICION).
215
Transacciones para Ambientación
y Monitoreo de Aplicaciones
CEMT [opción tipo-recurso(nombre recurso)]
TRANSACCION PROPIA DEL CICS, LA CUAL TIENE LA
SIGUIENTE FUNCIONALIDAD:
• PERMITE REALIZAR EL MONITOREO Y MODIFICACION
DEL ESTATUS DE LOS RECURSOS EXISTENTES EN UN
MEDIO AMBIENTE DE EJECUCION DE UNA APLICACIÓN.
• GRUPOS – EXISTENCIA EN CICS
• PROGRAMAS – ACTUALIZAR VERSIONES, ACTIVAR /
DESACTIVAR
• MAPAS – ACTUALIZAR VERSIONES, ACTIVAR /
DESACTIVAR
• ARCHIVOS – ACTIVAR, DESACTIVAR, ABRIR, CERRAR
• CONEXIONES – ACTIVAR / DESACTIVAR
• TERMINALES – ACTIVAR / DESACTIVAR
• ETC
• UTILIZA LAS TABLAS DE CONTROL DE CICS.
216
Transacciones para Depuración
(rastreo) de Aplicaciones
CEDF [terminal-id] [ON | OFF]
TRANSACCION PROPIA DEL CICS, LA CUAL TIENE LA
SIGUIENTE FUNCIONALIDAD:
• PERMITE REALIZAR EL SEGUIMIENTO DE LA EJECUCION
DE UNA TRANSACCION (RASTREO).
• INTERCEPTA AUTOMATICAMENTE LA EJECUCION DE LA
TRANSACCION AL MOMENTO DE:
• INICIO DE EJECUCION DE LA TRANSACCION Y O DE UN
PROGRAMA
• ANTES Y DESPUES DE LA EJECUCION DE CADA COMANDO
EXEC CICS Y ó EXEC SQL
• AL TERMINAR DE EJECUTARSE UN PROGRAMA, TAREA ó
TRANSACCION
• AL MOMENTO DE PRESENTARSE UN ABEND

217
Transacciones para Depuración
(rastreo) de Aplicaciones
CEDF [terminal-id] [ON | OFF]
• LA TRANSACCION PUEDE SER DETINADA EN LA
EJECUCION DE UN COMANDO ESPECIFICO, EL CUAL DEBE
SER ESPECIFICADO POR EL PROGRAMADOR QUE REALICE
EL RASTREO (STOP CONDITIONS).
• PERMITE VISUALIZAR Y MODIFICAR:
• WORKING STORAGE, DEL PROGRAMA QUE SE ESTA
EJECUTANDO
• TRANSACTION WORK AREA
• COMMAREA
• EXEC INTERFACE BLOCK (CAMPOS EIB)
• COLAS DE TEMPORARY STORAGE
• EL MAPA QUE SE ESTA DESPLEGANDO AL MOMENTO DE
EJCUCION DE LA TRANSACCION (USER DISPLAY)
• DETENER LA TRANSACCION SIMULANDO UN ABEND
(ABEND USER TASK)

218
Transacciones Interprete de
Comandos
CECI [comando parámetros()]
CECS [comando parámetros()]
TRANSACCIONES PROPIAS DEL CICS, LAS CUALES
PROPORCIONAN A LOS PROGRAMADORES FACILIDADES, YA
QUE TIENEN LA SIGUIENTE FUNCIONALIDAD:
• PERMITEN VERIFICAR LA SINTAXIS DE LOS COMANDOS
(CECI Y CECS), ASI COMO EL SUMARIO DE PARAMETROS
CORRESPONDIENTES A DICHOS COMANDOS.
• PERMITEN EJECUTAR LOS COMANDOS (CECI), LO CUAL
PUEDE SERVIR PARA OBSERVAR EL RESULTADO ESPERADO
EN EL PROGRAMA.
•PERMITE EL USO DE VARIABLES DENTRO DE LOS
PARAMETROS DE LOS COMANDOS.

219
Conexión entre el CICS y el DB2
PARA PODER EJECUTAR APLICACIONES QUE UTILIZAN DB2, SE
LE DEBE INDICAR AL CICS QUE ACCESARA UNA BASE DE
DATOS.
PARA CONECTAR EL DB2 AL CICS, ES NECESARIO ENSAMBLAR
(RECOMPILAR), LA RESOURCE CONTROL TABLE (RCT),
INDICANDOLE CON MACROS, LA CONEXIÓN ENTRE EL CICS Y
EL DB2. LA RCT DESCRIBE LA RELACION ENTRE LAS
TRANSACCIONES DEL CICS Y LOS RECURSOS DEL DB2.
EN EL ENSAMBLE DE LA RCT SE INDICA:
• LA O EL GRUPO DE TRANSACCIONES DE CICS QUE
TENDRAN LA CONEXION AL DB2.
 EL NOMBRE DEL PLAN DE DB2 UTILIZADO POR LOS
PROGRAMAS CON SENTENCIAS SQL.
 LAS OPCIONES DE AUTORIZACION

220
Conexión entre el CICS y el DB2
EJEMPLO DE UNA TARJETA QUE SE UTILIZA PARA EL ENSAMBLE
DE LA RCT:

****************************************************************** 00030
*** DEFINE LA TRANSACCION GT03 LOGON 00040
****************************************************************** 00050
DSNCRCT TYPE=ENTRY, ES UNA ENTRADA X00060
AUTH=(SIGNID,*,*), AUTORIZACION X00070
DPMODE=LOW, PRIORIDAD DISPATCHING CICS X00080
PLAN=NGT03BT, NOMBRE DEL PLAN X00090
ROLBE=YES, SI HAY DEADLOCK HACER ROLLBACK X00100
THRDM=0, NUM. MAX DE THREADS (0 POR POOL) X00110
THRDA=0, NUM. MAX DE THREADS (0 POR POOL) X00120
THRDS=0, NUM. MAX DE THREADS (0 POR POOL) X00130
TWAIT=POOL, USAR THREADS DEL POOL X00140
TXID=GT03 ID. DE TRANSACCION 00150

221
Modulo VIII:

CONSIDERACIONES
PARA EL
RENDIMIENTO DE
LAS APLICACIONES
(PERFORMANCE)

222
Consideraciones para el
Rendimiento de las Aplicaciones
Operaciones con las Terminales
• UTILIZAR FRSET PARA REDUCIR EL TRAFICO DE
INFORMACION INNECESARIA EN EL ENVIO.
• NO ENVIAR BLANCOS (ESPACIOS) A LA PANTALLA.
• UTILIZAR MAPONLY, SIEMPRE QUE SEA POSIBLE.
• ENVIAR SOLO LA INFORMACION QUE HAYA CAMBIADO
HACIA LA PANTALLA (DATAONLY).
• TRATAR DE NO UTILIZAR PANTALLAS CON MULTI-MAPAS.
• SI SE DESEA IMPRIMIR, CONSIDERAR EL USO DE START
ó TD.
• EL ENVIO DE INFORMACION QUE NO NECESITA ESTAR
FORMATEADA (MENSAJES DE BIENVENIDA, SALIDA DEL
SISTEMA), REALIZARLOS SIN ASOCIAR UN MAPA.
223
Consideraciones para el
Rendimiento de las Aplicaciones
Programación
• UTILIZAR REDEFINES SIEMPRE QUE SEA POSIBLE.
• ESTRUCTURACION DE PROGRAMAS LINEAL, (EJECUCION
TOP-DOWN).
• XCTL, GENERA MENOS OVERHEAD QUE EL LINK.
• DEFINICION DE ARREGLOS ó DE OTRAS ESTRUCTURAS
DE DATOS DE WS, EN EL ORDEN EN QUE SEAN USADOS
DENTRO DEL PROGRAMA.
• EVITAR EL COMANDO GETMAIN.
• EVITAR LA SENTENCIA EXAMINE DE COBOL.
• TAMAÑO DEL PROGRAMA (Y DE WS), NO MUY LARGO NI
MUY CORTO.
224
Consideraciones para el
Rendimiento de las Aplicaciones
Programación
• UTILIZAR SUB-PROGRAMAS (RUTINAS).
•SIEMPRE UTILIZAR PROGRAMACION
PSEUDOCONVERSACIONAL, EN VEZ DE CONVERSACIONAL.
• PARA EVITAR OVERLAYS DE AREAS DE USO COMUN
ENTRE PROGRAMAS (COMMAREAS), UTILIZAR COPYS.
• EN LUGAR DE REALIZAR UN SEARCH DE INFORMACION,
ES MEJOR UTILIZAR ARREGLOS.
• LA DEFINICION DE LOS INDICES DE LOS ARREGLOS,
DEBERÁ SIEMPRE SER NUMERICO EMPACADO (PARA
EVITAR LOS CONVERT-TO-DECIMAL, EN LA EJECUCION).

225
Consideraciones para el
Rendimiento de las Aplicaciones
Programación
• PARA REALIZAR MOVIMIENTO DE DATOS BYTE POR BYTE
ó PARTE DE UNA ESTRUCTURA DE DATOS, UTILIZAR MOVE
POR POSICIONES (MOVE VARIABLE(PIni:Pfin)), EN
LUGAR DE ARREGLOS.

Accesos a Información
• SI SE UTILIZA TWA, DEBERA DE ESTAR DEFINIDA EN LA
PCT.
• UTILIZAR COMMAREA PARA TRANSFERIR Y COMPARTIR
INFORMACION ENTRE PROGRAMAS ó TRANSACCIONES.
• EVITAR EL GRABAR DEMASIADAS COLAS DE TS.
• ASEGURARSE DE BORRAR LAS COLAS DE TS, AL
MOMENTO EN QUE DEJEN DE USARSE.
226
Consideraciones para el
Rendimiento de las Aplicaciones
Accesos a Información
• OPTIMIZAR AL MAXIMO ACCESOS SQL.
• MINIMIZAR LA LECTURA DE INFORMACION EN MODO
EXCLUSIVO (READ – UPDATE).
• SI NO SE REALIZO OPERACIÓN (REWRITE ó DELETE)
PARA LIBERAR EL MODO EXCLUSIVO DE LECTURA DE UN
ARCHIVO, UTILIZAR EL COMANDO UNLOCK.
• UTILIZAR MASSINSERT PARA UNA SERIE SUCESIVA DE
ALTAS DE REGISTROS.
• UTILIZAR DELETE CON LA OPCION GENERIC, PARA
ELIMINAR GRUPOS DE REGISTROS.
• EVITAR BROWSE DE MUCHOS REGISTROS.
• TERMINAR MODO BROWSE, CON ENDBR.
227

También podría gustarte