CICS - Bloque de interfaz
Cualquier programa de aplicación necesitaría una interfaz para interactuar con CICS. EIB (Execute Interface Block) actúa como una interfaz para permitir que los programas de aplicación se comuniquen con el CICS. EIB contiene la información requerida durante la ejecución de un programa.
Verbos COBOL restringidos
Mientras codificamos un programa CICS, no podemos usar los comandos que devuelven el control directamente al MVS. Si codificamos estos verbos COBOL, no dará ningún error de compilación, pero es posible que obtengamos resultados impredecibles. A continuación se muestran los verbos COBOL que no deben usarse en un programa CICS:
Declaraciones de E / S de archivos como Abrir, Leer, Escribir, Reescribir, Cerrar, Eliminar e Iniciar. Todas las E / S de archivos en CICS son manejadas por el módulo de control de archivos y tienen su propio conjunto de declaraciones como READ, WRITE, REWRITE y DELETE que discutiremos en los próximos módulos.
No se requiere la sección de archivos ni la división de medio ambiente.
No se pueden utilizar declaraciones COBOL que invocan funciones del sistema operativo como Aceptar, Fecha / Hora.
No utilice DISPLAY, FUSION, STOP RUN y GO BACK.
Ejecutar bloque de interfaz
Execute Interface Block (EIB) es un bloque de control que CICS carga automáticamente para cada programa.
El EIB es exclusivo de una tarea y existe mientras dura la tarea. Contiene un conjunto de información relacionada con el sistema correspondiente a la tarea.
Contiene información sobre el identificador de la transacción, la hora, la fecha, etc., que CICS utiliza durante la ejecución de un programa de aplicación.
Todos los programas que se ejecutan como parte de la tarea tienen acceso al mismo EIB.
Los datos en EIB en tiempo de ejecución se pueden ver ejecutando el programa en modo CEDF.
Campos EIB
La siguiente tabla proporciona una lista de campos que están presentes en EIB:
Campo EIB | Cláusula PIC | Descripción |
---|---|---|
EIBAID | X (1) | Tecla de ayuda presionada |
EIBCALEN | S9 (4) COMP | Contiene longitud de DFHCOMMAREA |
EIBDATE | S9 (7) COMP-3 | Contiene la fecha actual del sistema |
EIBRCODE | X (6) | Contiene el código de retorno de la última transacción. |
EIBTASKN | S9 (7) COMP-3 | Contiene número de tarea |
EIBTIME | S9 (7) COMP-3 | Contiene la hora actual del sistema |
EIBTRMID | X (4) | Identificador de terminal |
EIBTRNID | X (4) | Identificador de transacción |
Clasificación de programas CICS
Los programas CICS se clasifican en las siguientes tres categorías que analizaremos una por una:
- Programas no conversacionales
- Programas conversacionales
- Programas pseudoconversacionales: discutiremos en el próximo módulo
Programas no conversacionales
Al ejecutar programas no conversacionales, no se requiere intervención humana. Todas las entradas necesarias se proporcionan cuando se inicia el programa.
Son similares a los programas por lotes que se ejecutan en modo por lotes. Entonces, en CICS, rara vez se desarrollan.
Podemos decir que se utilizan solo para mostrar una secuencia de pantallas a intervalos regulares de tiempo.
Ejemplo
El siguiente ejemplo muestra un programa no conversacional que simplemente mostrará "HELLO WORLD" en el terminal CICS como salida:
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-MESSAGE PIC X(30).
PROCEDURE DIVISION.
********************************************************
* SENDING DATA TO SCREEN *
********************************************************
MOVE 'HELLO WORLD' TO WS-MESSAGE
EXEC CICS SEND TEXT
FROM (WS-MESSAGE)
END-EXEC
********************************************************
* TASK TERMINATES WITHOUT ANY INTERACTION FROM THE USER*
********************************************************
EXEC CICS RETURN
END-EXEC.
Programa conversacional
Enviar un mensaje al terminal y recibir una respuesta del usuario se denomina Conversational. Una aplicación en línea logra una conversación entre el usuario y el programa de aplicación mediante un par de comandos SEND y RECEIVE. Los puntos clave de un programa conversacional son los siguientes:
El sistema envía un mensaje a la pantalla y espera la respuesta del usuario.
El tiempo que tarda el usuario en responder se conoce como Think Time. Este tiempo es considerablemente alto, lo que es un gran inconveniente de los programas de conversión.
El usuario proporciona la entrada necesaria y presiona una tecla AID.
La aplicación procesa la entrada del usuario y envía la salida.
El programa se carga en el almacenamiento principal al principio y se retiene hasta que finaliza la tarea.
Ejemplo
El siguiente ejemplo muestra un programa de conversión que toma la entrada del usuario y luego simplemente muestra la misma entrada en el terminal CICS como salida:
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-MESSAGE PIC X(30) VALUE SPACES.
PROCEDURE DIVISION.
MOVE 'ENTER MESSAGE' TO WS-MESSAGE
********************************************************
* SENDING DATA FROM PROGRAM TO SCREEN *
********************************************************
EXEC CICS SEND TEXT
FROM (WS-MESSAGE)
END-EXEC
********************************************************
* GETTING INPUT FROM USER *
********************************************************
EXEC CICS RECEIVE
INTO(WS-MESSAGE)
END-EXEC
EXEC CICS SEND TEXT
FROM (WS-MESSAGE)
END-EXEC
********************************************************
* COMMAND TO TERMINATE THE TRANSACTION *
********************************************************
EXEC CICS RETURN
END-EXEC.