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.