| Programação de mapa BMS em CICS |
🔥 Map Programming no CICS
Structure, Rules, Hierarchy & Checklist para Design de Mapas BMS
| Workflow de compilação mapa bms cics |
☕ Midnight Lunch, tela piscando e o mapa “quase certo”
13h42.
O programa compila.
O mapa gera.
A tela aparece… toda desalinhada.
O operador olha.
O usuário reclama.
O programador jura:
“Mas o BMS tá certo…”
Hoje vamos falar do map programming no CICS — a arte esquecida que separa interface profissional de poluição verde-fosforescente.
🏛️ História: antes do HTML, existia BMS
Antes de:
-
HTML
-
CSS
-
Front-end frameworks
o CICS já tinha separação clara entre lógica e apresentação usando BMS (Basic Mapping Support).
📌 BMS é UI declarativa antes da web existir.
🧠 Conceito essencial (guarde isso)
Mapa não é tela.
Mapa é contrato entre usuário e programa.
Se o contrato é ruim, o sistema sofre.
🧩 Hierarquia de Mapas no CICS
Entender a hierarquia evita 80% dos erros.
📐 Estrutura hierárquica
📦 MAPSET
-
Conjunto lógico de mapas
-
Compilado como uma única unidade
-
Gera um load module
📌 MAPSET é o pacote.
🖥️ MAP
-
Uma tela específica
-
Ex: entrada, consulta, confirmação
📌 Um MAP = um propósito.
🔤 FIELD
-
Campos de entrada ou saída
-
Posicionados na tela
-
Com atributos definidos
📌 Campo mal definido = bug visual.
🧾 Estrutura básica de um BMS Map
📌 Simples. Poderoso. Exigente.
📐 Regras fundamentais de Map Programming
1️⃣ Um mapa, uma função
❌ Tela “faz tudo”
✅ Tela objetiva
2️⃣ Campos bem definidos
-
Entrada →
UNPROT -
Saída →
PROT -
Proteção correta evita erro de digitação
3️⃣ Nunca confie no input
-
Sempre valide no programa
-
Mapa ajuda, mas não garante
4️⃣ Use atributos conscientemente
-
INTENS
-
MDT
-
IC (cursor)
-
ASKIP
📌 Atributo errado confunde usuário.
🧠 Estrutura do Programa de Mapa (lado COBOL)
Fluxo clássico
1️⃣ RECEIVE MAP
2️⃣ Processa dados
3️⃣ Prepara saída
4️⃣ SEND MAP
5️⃣ RETURN
📌 Mapa não decide lógica. Programa decide.
🛠️ Passo a passo: desenhando um mapa decente
🧩 Planejamento
-
O que o usuário vê?
-
O que ele digita?
-
Qual é o fluxo?
🧩 Design
-
Campos alinhados
-
Mensagens claras
-
Uso consciente de cores
🧩 Implementação
-
BMS limpo
-
Nomes consistentes
-
Sem “gambiarras visuais”
🧩 Teste
-
Campo obrigatório
-
Campo inválido
-
Tela cheia
-
Tela vazia
📌 Tela também precisa de teste.
✅ Checklist Bellacosa – antes de subir o mapa
✔ Campos protegidos corretamente
✔ Cursor posicionado logicamente
✔ Mensagens claras e humanas
✔ Nenhum campo sobreposto
✔ MAPSET organizado
✔ Nomes padronizados
✔ Layout documentado
📌 Mapa ruim vira chamado eterno.
⚠️ Erros clássicos (easter eggs)
🐣 Campo UNPROT que deveria ser PROT
🐣 Mensagem fixa escrita no mapa
🐣 Mapa gigante e confuso
🐣 Layout “ajustado no chute”
🐣 BMS tratado como código secundário
📌 Todo sistema feio começa assim.
📚 Guia de estudo para mainframers
Domine estes tópicos:
-
BMS syntax
-
Mapset generation
-
SEND / RECEIVE MAP
-
MDT, IC, ASKIP
-
Pseudo-conversational design
📖 Manual essencial: CICS Basic Mapping Support Guide
🤓 Curiosidades de boteco mainframe
🍺 BMS já separava UI e lógica antes do MVC
🍺 Muitas telas CICS têm mais de 30 anos
🍺 Um bom mapa reduz erro humano
🍺 Operador odeia mapa mal alinhado
💬 Comentário El Jefe Midnight Lunch
“Código ruim quebra sistema.
Mapa ruim quebra usuário.”
🚀 Aplicações reais hoje
-
Sistemas bancários
-
Governo
-
Seguradoras
-
Atendimento corporativo
-
Ambientes híbridos (3270 + APIs)
🎯 Conclusão Bellacosa
Map programming não é detalhe.
É experiência do usuário, disciplina e respeito.
Quem domina BMS:
-
Recebe menos chamado
-
Facilita suporte
-
Cria sistemas longevos
🔥 Tela bem feita envelhece melhor que código.