CICS - Operaciones de control

El Programa de control de programas (PCP) de CICS gestiona el flujo de programas de aplicación. Todos los programas de aplicación deben tener una entrada en la Tabla de programas de procesamiento. Los siguientes son los comandos que se utilizan para los servicios de control de programas:

  • XCTL
  • Link
  • Load
  • Release
  • Return

Programar niveles lógicos

Los programas de aplicación que se ejecutan bajo CICS tienen varios niveles lógicos. El primer programa que recibe el control directamente está en el nivel lógico más alto, es decir, el nivel 1. El programa enlazado está en el siguiente nivel lógico del programa enlazado. Los programas XCTL se ejecutan al mismo nivel. Quedará claro cuándo pasaremos por Link y XCTL, más adelante en este módulo. La siguiente imagen muestra los niveles lógicos:

XCTL

La explicación fundamental de XCTL es la siguiente:

  • El comando XCTL se usa para pasar el control de un programa a otro en el mismo nivel.

  • No espera que le devuelvan el control.

  • Es similar a la instrucción GO TO.

  • Un programa XCTL puede ser pseudoconversacional.

Ejemplo

El siguiente ejemplo muestra cómo usar el comando XCTL para pasar el control a otro programa:

IDENTIFICATION DIVISION.                                         
PROGRAM-ID. PROG1.  
WORKING-STORAGE SECTION.
01 WS-COMMAREA    PIC X(100).                                             
PROCEDURE DIVISION.

EXEC CICS XCTL
   PROGRAM ('PROG2')
   COMMAREA (WS-COMMAREA)
   LENGTH (100)
END-EXEC.

Este comando transfiere el control a pasar al programa 'PROG2' con 100 bytes de datos. COMMAREA es un parámetro opcional y es el nombre del área que contiene los datos que se pasarán o el área a la que se devolverán los resultados.

Enlace

El comando de enlace se utiliza para transferir el control a otro programa en un nivel inferior. Espera que le devuelvan el control. Un programa vinculado no puede ser pseudo-conversacional.

Ejemplo

El siguiente ejemplo muestra cómo usar el comando Link para pasar el control a otro programa:

IDENTIFICATION DIVISION.                                         
PROGRAM-ID. PROG1.  
WORKING-STORAGE SECTION.
01 WS-COMMAREA    PIC X(100).                                             
PROCEDURE DIVISION.

EXEC CICS LINK
   PROGRAM ('PROG2')
   COMMAREA (WS-COMMAREA)
   LENGTH (100)
END-EXEC.

Carga

El comando Load se usa para cargar un programa o una tabla. A continuación se muestra la sintaxis del comando Cargar:

EXEC CICS LOAD
   PROGRAM ('name')
END-EXEC.

Lanzamiento

El comando de liberación se usa para liberar un programa o una tabla. A continuación se muestra la sintaxis del comando Release:

EXEC CICS RELEASE
   PROGRAM ('name')
END-EXEC.

Regreso

El comando de retorno se utiliza para devolver el control al siguiente nivel lógico superior. A continuación se muestra la sintaxis del comando Retorno:

EXEC CICS RETURN
   PROGRAM ('name')
   COMMAREA (data-value)
   LENGTH (data-value)
END-EXEC.

Operaciones de control de intervalo

Las operaciones de control de intervalo son de los dos tipos siguientes:

ASKTIME

ASKTIME se utiliza para solicitar la fecha y hora actual o la marca de tiempo. Luego, movemos este valor a la variable de almacenamiento de trabajo dentro del programa. A continuación se muestra la sintaxis del comando ASKTIME:

EXEC CICS ASKTIME
   [ABSTIME(WS-TIMESTAMP)]
END-EXEC.

FORMATTIME

FORMATTIME formatea la marca de tiempo en el formato requerido según las opciones, que pueden ser YYDDD, YYMMDD o YYDDMM para la fecha. DATESEP indica el separador para DATE al igual que la variable TIMESEP para TIME. A continuación se muestra la sintaxis del comando FORMATTIME:

EXEC CICS FORMATTIME
   ABSTIME(WS-TIMESTAMP)
   [YYDDD(WS-DATE)]
   [YYMMDD(WS-DATE)]
   [YYDDMM(WS-DATE)]
   [DATESEP(WS-DATE-SEP)]
   [TIME(WS-TIME)]
   [TIMESEP(WS-TIME-SEP)]
END-EXEC.