CICS - MAP
BMS riceve i dati inseriti dall'utente e poi li formatta in un'area simbolica della mappa. Il programma applicativo ha accesso solo ai dati presenti nella mappa simbolica. Il programma applicativo elabora i dati e l'output viene inviato alla mappa simbolica. BMS unirà l'output dei dati simbolici con la mappa fisica.
Mappa fisica
Mappa fisica è un modulo di caricamento nella libreria di caricamento che contiene informazioni su come visualizzare la mappa.
Contiene i dettagli sugli attributi di tutti i campi nella mappa e le loro posizioni.
Contiene il formato di visualizzazione della mappa per un dato terminale.
È codificato utilizzando le macro BMS. Viene assemblato separatamente e viene modificato tramite collegamento nella libreria CICS.
Mappa simbolica
Una mappa simbolica è un quaderno della biblioteca. Il Copy book viene utilizzato dal programma applicativo CICS per inviare e ricevere dati dal terminale.
Contiene tutti i dati variabili che vengono copiati nella sezione WORKINGSTORAGE del programma.
Ha tutti i campi denominati. Il programmatore dell'applicazione utilizza questi campi per leggere e scrivere dati nella mappa.
Skipper e Stopper Field
Per un campo denominato non protetto, in una mappa, se abbiamo specificato una lunghezza di 10, ciò significa che il campo del nome può assumere valori la cui lunghezza non può superare 10. Ma quando si visualizza questa mappa utilizzando CICS e si inizia a immettere i valori per questo campo su sullo schermo, possiamo inserire più di 10 caratteri, cioè fino alla fine dello schermo e possiamo entrare anche nella riga successiva. Per evitare ciò, utilizziamo il campo Skipper o il campo stopper. Un campo Skipper sarebbe generalmente un campo Senza nome di lunghezza 1, specificato dopo un campo denominato.
Skipper Field
Se posizioniamo un campo skipper dopo il campo non protetto denominato, durante l'inserimento del valore, una volta raggiunta la lunghezza specificata, il cursore si posizionerà automaticamente sul campo non protetto successivo. L'esempio seguente mostra come aggiungere un campo skipper:
NUMBER DFHMDF POS = (01,01), X
LENGTH = 5, X
ATTRB = (UNPROT,IC)
DFHMDF POS = (01,07), X
LENGTH = 1, X
ATTRB = (ASKIP)
Stopper Field
Se posizioniamo un campo stopper dopo il campo non protetto denominato, durante l'inserimento del valore, una volta raggiunta la lunghezza specificata, il cursore interromperà il suo posizionamento. L'esempio seguente mostra come aggiungere un campo stopper:
NUMBER DFHMDF POS = (01,01), X
LENGTH = 5, X
ATTRB = (UNPROT,IC)
DFHMDF POS = (01,07), X
LENGTH = 1, X
ATTRB = (PROT)
Attributo Byte
Il byte di attributo di qualsiasi campo memorizza le informazioni sulle proprietà fisiche del campo. Il diagramma e la tabella seguenti spiegano il significato di ogni bit.
Posizione bit | Descrizione | Impostazioni bit |
---|---|---|
0 e 1 | Determinato dal contenuto dei bit da 2 a 7 | |
2 e 3 | Protezione e spostamento | 00 - Alfanumerico non protetto 01 - Numerico non protetto 10 - Stop protetto 11 - Salto protetto |
4 e 5 | Intensità | 00 - Normale 01 - Normale 10 - Luminoso 11 - Nessuna visualizzazione (Scuro) |
6 | Deve essere zero sempre | |
7 | Tag dati modificati | 0 - Il campo non è stato modificato 1 - Il campo è stato modificato |
Tag dati modificati
Il tag di dati modificati (MDT) è l'ultimo bit del byte dell'attributo.
MDT è una bandiera che contiene un singolo bit. Specifica se il valore deve essere trasferito o meno al sistema.
Il suo valore predefinito è 1, quando il valore del campo viene modificato.
Se MDT è 0, i dati non possono essere trasferiti; e se MDT è 1, i dati possono essere trasferiti.
Invia mappa
Il comando send map scrive l'output formattato sul terminale. Serve per inviare la mappa al terminale dal programma applicativo. Il seguente segmento di codice mostra come inviare una mappa al terminale:
EXEC CICS SEND
MAP('map-name')
MAPSET('mapset-name')
[FROM(data-area)]
[LENGTH(data_value)]
[DATAONLY]
[MAPONLY]
[CURSOR]
[ERASE/ERASEAUP]
[FREEKB]
[FRSET]
END-EXEC
La tabella seguente elenca i parametri utilizzati in un comando send map insieme al loro significato.
Suor n | Parametro e descrizione |
---|---|
1 | Map-name È il nome della mappa che vogliamo inviare. È obbligatorio. |
2 | Mapset-name È il nome della serie di mappe che contiene il nome della mappa. Il nome del mapset è necessario a meno che non sia lo stesso del nome della mappa. |
3 | FROM Viene utilizzato se abbiamo deciso di utilizzare un nome DSECT diverso, dobbiamo utilizzare l'opzione FROM (dsect-name) insieme al comando SEND MAP. |
4 | MAPONLY Significa che nessun dato dal tuo programma deve essere unito alla mappa e vengono trasmesse solo le informazioni nella mappa. |
5 | DATAONLY È l'opposto logico di MAPONLY. Lo usiamo per modificare i dati variabili in un display che è già stato creato. Sullo schermo vengono inviati solo i dati del programma. Le costanti nella mappa non vengono inviate. |
6 | ERASE Fa sì che l'intero schermo venga cancellato prima che venga mostrato ciò che stiamo inviando. |
7 | ERASEUP Causa la cancellazione solo dei campi non protetti. |
8 | FRSET Flag Reset disattiva il tag di dati modificati nel byte dell'attributo per tutti i campi sullo schermo prima che ciò che stai inviando venga inserito lì. |
9 | CURSOR Può essere utilizzato per posizionare il cursore sullo schermo del terminale. Il cursore può essere impostato spostando -1 nella parte L del campo e quindi inviando la mappa. |
10 | ALARM Fa suonare l'allarme acustico. |
11 | FREEKB. La tastiera è sbloccata se specifichiamo FREEKB nella mappa o nel comando INVIA. |
12 | Consente di stampare su una stampante l'output di un comando SEND. |
13 | FORMFEED Fa sì che la stampante ripristini la carta all'inizio della pagina successiva prima che l'output venga stampato. |
Ricevi mappa
Quando vogliamo ricevere input da un terminale, usiamo il comando RECEIVE MAP. I parametri MAP e MAPSET hanno esattamente lo stesso significato del comando SEND MAP. Il seguente segmento di codice mostra come ricevere una mappa:
EXEC CICS RECEIVE
MAP('map-name')
MAPSET('mapset-name')
[INTO(data-area)]
[FROM(data-area)]
[LENGTH(data_value)]
END-EXEC
Esecuzione di Mapset
I seguenti passaggi sono necessari per sviluppare ed eseguire un mapset:
Step 1 - Apri una sessione TSO.
Step 2 - Crea un nuovo PDS.
Step 3 - Codificare un mapset in un nuovo membro in base al requisito.
Step 4 - Assemblare il mapset utilizzando il JCL fornito dall'amministratore CICS.
Step 5 - Apri una sessione CICS.
Step 6 - Installa il programma utilizzando il comando -
CEMT SET PROG (mapset-name) NUOVO
Step 7 - Digita il seguente comando per inviare la mappa al terminale -
CECI SEND MAP (nome-mappa) MAPSET (nome-mapset) CANCELLA FREEKB