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 | 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