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

PRINT

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