CICS - Operazioni di controllo

CICS Program Control Program (PCP) gestisce il flusso dei programmi applicativi. Tutti i programmi applicativi devono avere una voce nella tabella dei programmi di elaborazione. Di seguito sono riportati i comandi utilizzati per i servizi di controllo del programma:

  • XCTL
  • Link
  • Load
  • Release
  • Return

Livelli logici del programma

I programmi applicativi che vengono eseguiti in CICS hanno vari livelli logici. Il primo programma che riceve il controllo direttamente è al livello logico più alto, cioè, Livello 1. Il programma collegato è al livello logico successivo dal programma di collegamento. I programmi XCTL vengono eseguiti allo stesso livello. Sarà chiaro quando passeremo attraverso Link e XCTL, più avanti in questo modulo. L'immagine seguente mostra i livelli logici:

XCTL

La spiegazione fondamentale di XCTL è la seguente:

  • Il comando XCTL viene utilizzato per passare il controllo da un programma a un altro allo stesso livello.

  • Non si aspetta il ritorno del controllo.

  • È simile all'istruzione VAI A.

  • Un programma XCTL può essere pseudo-conversazionale.

Esempio

L'esempio seguente mostra come utilizzare il comando XCTL per passare il controllo a un altro programma:

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.

Questo comando trasferisce il controllo da passare al programma "PROG2" con 100 byte di dati. COMMAREA è un parametro opzionale ed è il nome dell'area che contiene i dati da passare o l'area a cui devono essere restituiti i risultati.

Link

Il comando Link viene utilizzato per trasferire il controllo a un altro programma a livello inferiore. Si aspetta di nuovo il controllo. Un programma collegato non può essere pseudo-conversazionale.

Esempio

L'esempio seguente mostra come utilizzare il comando Link per passare il controllo a un altro programma:

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.

Caricare

Il comando Load viene utilizzato per caricare un programma o una tabella. Di seguito è riportata la sintassi del comando Carica:

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

pubblicazione

Il comando di rilascio viene utilizzato per rilasciare un programma o una tabella. Di seguito è riportata la sintassi del comando di rilascio:

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

Ritorno

Il comando Return viene utilizzato per riportare il controllo al successivo livello logico superiore. Di seguito è riportata la sintassi del comando Return:

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

Operazioni di controllo degli intervalli

Le operazioni di controllo dell'intervallo sono dei seguenti due tipi:

ASKTIME

ASKTIME viene utilizzato per richiedere l'ora e la data correnti o il timestamp. Quindi spostiamo questo valore nella variabile di memoria di lavoro all'interno del programma. Di seguito è riportata la sintassi del comando ASKTIME:

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

FORMATTIME

FORMATTIME formatta il timestamp nel formato richiesto in base alle opzioni, che possono essere YYDDD, YYMMDD o YYDDMM per la data. DATESEP indica il separatore per la DATA così come la variabile TIMESEP per TIME. Di seguito è riportata la sintassi 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.