CICS - Interface Block
Qualsiasi programma applicativo richiederebbe un'interfaccia per interagire con CICS. EIB (Execute Interface Block) funge da interfaccia per consentire ai programmi applicativi di comunicare con CICS. La BEI contiene le informazioni richieste durante l'esecuzione di un programma.
Verbi COBOL limitati
Durante la codifica di un programma CICS, non è possibile utilizzare i comandi che restituiscono il controllo direttamente a MVS. Se codifichiamo questi verbi COBOL, non darà alcun errore di compilazione, ma potremmo ottenere risultati imprevedibili. Di seguito sono riportati i verbi COBOL che non devono essere utilizzati in un programma CICS:
Istruzioni di I / O su file come Apri, Leggi, Scrivi, Riscrivi, Chiudi, Elimina e Avvia. Tutti i file I / O in CICS sono gestiti dal modulo di controllo dei file e hanno il proprio set di istruzioni come READ, WRITE, REWRITE e DELETE di cui parleremo nei prossimi moduli.
La sezione file e la divisione ambiente non sono richieste.
Non è possibile utilizzare istruzioni COBOL che richiamano funzioni del sistema operativo come Accept, Date / Time.
Non utilizzare DISPLAY, MERGE, STOP RUN e GO BACK.
Esegui il blocco dell'interfaccia
Execute Interface Block (EIB) è un blocco di controllo che viene caricato automaticamente da CICS per ogni programma.
La BEI è unica per un'attività ed esiste per la durata dell'attività. Contiene una serie di informazioni relative al sistema corrispondenti all'attività.
Contiene informazioni sull'identificativo della transazione, l'ora, la data, ecc., Che vengono utilizzate da CICS durante l'esecuzione di un programma applicativo.
Ogni programma che viene eseguito come parte dell'attività ha accesso alla stessa BEI.
I dati in EIB in runtime possono essere visualizzati eseguendo il programma in modalità CEDF.
Campi BEI
La tabella seguente fornisce un elenco dei campi presenti in BEI:
Campo BEI | Clausola PIC | Descrizione |
---|---|---|
EIBAID | X (1) | Tasto di aiuto premuto |
EIBCALEN | S9 (4) COMP | Contiene la lunghezza di DFHCOMMAREA |
EIBDATE | S9 (7) COMP-3 | Contiene la data di sistema corrente |
EIBRCODE | X (6) | Contiene il codice di ritorno dell'ultima transazione |
EIBTASKN | S9 (7) COMP-3 | Contiene il numero dell'attività |
EIBTIME | S9 (7) COMP-3 | Contiene l'ora di sistema corrente |
EIBTRMID | X (4) | Identificatore del terminale |
EIBTRNID | X (4) | Identificatore di transazione |
Classificazione dei programmi CICS
I programmi CICS sono classificati nelle seguenti tre categorie che discuteremo una per una:
- Programmi non conversazionali
- Programmi di conversazione
- Programmi pseudo-conversazionali - Ne parleremo nel prossimo modulo
Programmi non conversazionali
Durante l'esecuzione di programmi non conversazionali, non è richiesto alcun intervento umano. All'avvio del programma vengono forniti tutti gli input necessari.
Sono simili ai programmi batch che vengono eseguiti in modalità batch. Quindi, in CICS, vengono sviluppati raramente.
Possiamo dire che vengono utilizzati solo per visualizzare una sequenza di schermate a intervalli di tempo regolari.
Esempio
Il seguente esempio mostra un programma non conversazionale che visualizzerà semplicemente "HELLO WORLD" sul terminale CICS come output -
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.
Programma di conversazione
L'invio di un messaggio al terminale e la ricezione di una risposta dall'utente viene chiamato a Conversational. Un'applicazione in linea realizza una conversazione tra l'utente e il programma applicativo tramite una coppia di comandi SEND e RECEIVE. I punti chiave di un programma di conversazione sono i seguenti:
Il sistema invia un messaggio allo schermo e attende la risposta dell'utente.
Il tempo impiegato dall'utente per rispondere è noto come Think Time. Questo tempo è considerevolmente alto, il che è uno dei principali svantaggi dei programmi di conversione.
L'utente fornisce l'input necessario e preme un tasto AID.
L'applicazione elabora l'input dell'utente e invia l'output.
Il programma viene caricato nella memoria principale all'inizio e viene conservato fino al termine dell'attività.
Esempio
Il seguente esempio mostra un programma di conversione che prende l'input dall'utente e quindi visualizza semplicemente lo stesso input sul terminale CICS come output -
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.