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.