🔷 Construção de um Mapa BMS
🧠 Explicação
BMS (Basic Mapping Support) é a linguagem usada no ambiente CICS para descrever telas (ou mapas) que serão exibidas aos usuários em terminais 3270. As telas são definidas por meio de macros escritas em Assembler, que serão posteriormente compiladas e utilizadas em programas COBOL.
O BMS permite criar telas estruturadas que interagem com os programas, facilitando a entrada e saída de dados.
🛠️ Usos mais comuns
-
Criar interfaces interativas (telas) para aplicações CICS
-
Definir campos de entrada, saída ou proteção
-
Organizar visualmente os dados apresentados ao usuário
-
Gerar copybooks para uso direto em programas COBOL
🧾 Estrutura e sintaxe básica
📌 Regras gerais de codificação BMS:
Elemento | Regras |
---|---|
Label da macro | Colunas 1 a 8 (opcional) |
Nome da macro | A partir da coluna 10 |
Argumentos da macro | Colunas 16 a 71, separados por vírgula e sem espaços entre eles |
Comentários | Qualquer texto após um espaço nos argumentos é tratado como comentário |
Continuação de linha | Indique com um caractere na coluna 72, e continue na coluna 16 da próxima linha |
Encerramento | A última linha deve conter END na coluna 10 |
🧩 Principais Macros BMS
Macro | Função |
---|---|
DFHMSD |
Define o Mapset (conjunto de telas) |
DFHMDI |
Define uma tela específica dentro do Mapset |
DFHMDF |
Define cada campo individual da tela |
DFHMSD TYPE=FINAL |
Fecha a estrutura do mapa |
END |
Fim do código fonte BMS |
💻 Exemplo prático de estrutura BMS
MAPSET DFHMSD MODE=INOUT,STORAGE=AUTO,LANG=COBOL,TERM=3270
TELA1 DFHMDI SIZE=(24,80),LINE=1,COLUMN=1
CAMPO1 DFHMDF POS=(3,10),LENGTH=10,ATTRB=(ASKIP,PROT),INITIAL='NOME.....'
CAMPO2 DFHMDF POS=(5,10),LENGTH=20,ATTRB=(UNPROT,FSET)
DFHMSD TYPE=FINAL
END
⚙️ Compilação e resultados
Após a escrita do fonte BMS, é necessário compilá-lo. A compilação gera dois componentes principais:
-
Módulo objeto: carregado pelo TCP (Terminal Control Program) do CICS. Ele é responsável por transformar o mapa em comandos válidos do protocolo 3270.
-
Copybook (área copy): um arquivo
.cpy
com as estruturas dos campos da tela, que será incluído (COPY
) no programa COBOL para facilitar a manipulação dos dados digitados ou exibidos.
📋 Regras importantes
-
O Mapset pode conter várias telas (
DFHMDI
), e cada tela pode ter diversos campos (DFHMDF
). -
A macro
DFHMSD TYPE=FINAL
deve ser usada para fechar corretamente o mapa. -
O nome do Mapset e das telas deve seguir convenções válidas do CICS (normalmente com até 8 caracteres).
-
Os campos definidos com
ATTRB=(UNPROT,FSET)
permitem entrada de dados. -
Campos com
ATTRB=(ASKIP,PROT)
são somente leitura.
💡 Dicas
-
Sempre teste a tela em um ambiente de homologação antes de colocar em produção.
-
Use nomes de campos descritivos para facilitar a manutenção do código.
-
Utilize o comando
SEND MAP(...)
eRECEIVE MAP(...)
nos programas COBOL para interagir com o mapa. -
O Copy gerado pela compilação facilita muito a integração entre o programa e a tela — use e abuse dele.
✅ Conclusão
A construção de mapas BMS é um passo essencial no desenvolvimento de aplicações interativas em ambientes CICS. Com o uso das macros DFHMSD
, DFHMDI
e DFHMDF
, o programador consegue definir telas funcionais que interagem com os usuários por meio de terminais 3270. Dominar a construção e compilação de mapas é fundamental para quem desenvolve sistemas online no mainframe.