CICS - MAP

O BMS recebe os dados inseridos pelo usuário e os formata em uma área de mapa simbólica. O programa aplicativo tem acesso apenas aos dados presentes no mapa simbólico. O programa aplicativo processa os dados e a saída é enviada para o mapa simbólico. O BMS mesclará a saída dos dados simbólicos com o mapa físico.

Mapa físico

Mapa físico é um módulo de carregamento na biblioteca de carregamento que contém informações sobre como o mapa deve ser exibido.

  • Ele contém os detalhes sobre os atributos de todos os campos no mapa e suas posições.

  • Ele contém o formato de exibição do mapa para um determinado terminal.

  • Ele é codificado usando macros BMS. Ele é montado separadamente e o link editado na biblioteca CICS.

Mapa Simbólico

Um mapa simbólico é um livro de cópia na biblioteca. O Copy book é usado pelo programa aplicativo CICS para enviar e receber dados do terminal.

  • Ele contém todos os dados variáveis ​​que são copiados para a seção WORKINGSTORAGE do programa.

  • Possui todos os campos nomeados. O programador do aplicativo usa esses campos para ler e gravar dados no mapa.

Skipper e Stopper Field

Para um campo nomeado desprotegido, em um mapa, se tivermos especificado um comprimento de 10, isso significa que o campo de nome pode assumir valores cujo comprimento não pode exceder 10. Mas quando você exibe este mapa usando CICS e começa a inserir valores para este campo em na tela, podemos inserir mais de 10 caracteres, ou seja, até o final da tela e podemos entrar ainda na próxima linha. Para evitar isso, usamos o campo Skipper ou o campo stopper. Um campo Skipper geralmente seria um campo Sem nome de comprimento 1, especificado após um campo nomeado.

Skipper Field

Se colocarmos um campo skipper após o campo desprotegido nomeado, então, ao inserir o valor, quando o comprimento especificado for atingido, o cursor se posicionará automaticamente no próximo campo desprotegido. O exemplo a seguir mostra como adicionar um 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 colocarmos um campo stopper após o campo desprotegido nomeado, então, ao inserir o valor, uma vez que o comprimento especificado seja alcançado, o cursor irá parar seu posicionamento. O exemplo a seguir mostra como adicionar um campo de parada -

NUMBER  DFHMDF POS = (01,01), X
   LENGTH = 5, X
	ATTRB = (UNPROT,IC)
	   DFHMDF POS = (01,07), X
      LENGTH = 1, X
      ATTRB = (PROT)

Byte de atributo

O byte de atributo de qualquer campo armazena informações sobre as propriedades físicas do campo. O diagrama a seguir e a tabela explicam o significado de cada bit.

Posição do bit Descrição Configurações de bits
0 e 1   Determinado pelo conteúdo dos bits 2 a 7
2 e 3 Proteção e Mudança 00 - Alfanumérico não protegido
01 - Numérico não
protegido 10 - Parada protegida
11 - Pulo protegido
4 e 5 Intensidade 00 - Normal
01 - Normal
10 - Claro
11 - Sem exibição (escuro)
6   Deve ser zero sempre
7 Tag de dados modificados 0 - Campo não foi modificado
1 - Campo foi modificado

Tag de dados modificados

Modified Data Tag (MDT) é o último bit no byte de atributo.

  • MDT é uma bandeira que contém um único bit. Ele especifica se o valor deve ser transferido para o sistema ou não.

  • Seu valor padrão é 1, quando o valor do campo é alterado.

  • Se MDT for 0, os dados não podem ser transferidos; e se MDT for 1, os dados podem ser transferidos.

Enviar mapa

O comando send map grava a saída formatada no terminal. É usado para enviar o mapa para o terminal a partir do programa aplicativo. O segmento de código a seguir mostra como enviar um mapa para o terminal -

EXEC CICS SEND 
   MAP('map-name')
   MAPSET('mapset-name')
   [FROM(data-area)]
   [LENGTH(data_value)]
   [DATAONLY]
   [MAPONLY]
   [CURSOR]
   [ERASE/ERASEAUP]
   [FREEKB] 
   [FRSET]
END-EXEC

A tabela a seguir lista os parâmetros usados ​​em um comando de envio de mapa junto com seu significado.

Sr. Não Parâmetro e Descrição
1

Map-name

É o nome do mapa que queremos enviar. É obrigatório.

2

Mapset-name

É o nome do conjunto de mapas que contém o mapname. O nome do mapset é necessário, a menos que seja igual ao nome do mapa.

3

FROM

É usado se decidimos usar um nome DSECT diferente, devemos usar a opção FROM (dsect-name) junto com o comando SEND MAP.

4

MAPONLY

Isso significa que nenhum dado do seu programa deve ser mesclado no mapa e apenas as informações no mapa são transmitidas.

5

DATAONLY

É o oposto lógico de MAPONLY. Nós o usamos para modificar os dados variáveis ​​em um display que já foi criado. Apenas os dados do seu programa são enviados para a tela. As constantes no mapa não são enviadas.

6

ERASE

Isso faz com que toda a tela seja apagada antes que o que estamos enviando seja mostrado.

7

ERASEUP

Faz com que apenas campos desprotegidos sejam apagados.

8

FRSET

Redefinir sinalizador desativa a tag de dados modificada no byte de atributo para todos os campos na tela antes que o que você está enviando seja colocado lá.

9

CURSOR

Ele pode ser usado para posicionar o cursor na tela do terminal. O cursor pode ser definido movendo -1 para a parte L do campo e enviando o mapa.

10

ALARM

Faz com que o alarme sonoro soe.

11

FREEKB.

O teclado é desbloqueado se especificarmos FREEKB no mapa ou no comando SEND.

12

PRINT

Ele permite que a saída de um comando SEND seja impressa em uma impressora.

13

FORMFEED

Isso faz com que a impressora restaure o papel no início da próxima página antes que a saída seja impressa.

Receber mapa

Quando queremos receber entrada de um terminal, usamos o comando RECEIVE MAP. Os parâmetros MAP e MAPSET têm exatamente o mesmo significado que para o comando SEND MAP. O seguinte segmento de código mostra como receber um mapa -

EXEC CICS RECEIVE 
   MAP('map-name')
   MAPSET('mapset-name')
   [INTO(data-area)]
   [FROM(data-area)]
   [LENGTH(data_value)]
END-EXEC

Execução de Mapset

As etapas a seguir são necessárias para desenvolver e executar um mapset -

  • Step 1 - Abra uma sessão TSO.

  • Step 2 - Crie um novo PDS.

  • Step 3 - Codifique um mapset em um novo membro de acordo com o requisito.

  • Step 4 - Monte o mapset usando o JCL fornecido pelo administrador do CICS.

  • Step 5 - Abra uma sessão CICS.

  • Step 6 - Instale o programa usando o comando -

    CEMT SET PROG (nome do mapset) NOVO

  • Step 7 - Digite o seguinte comando para enviar o mapa para o terminal -

    CECI SEND MAP (map-name) MAPSET (mapset-name) APAGAR FREEKB