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.