| Bellacosa Mainframe laboratorio pratico CICS BMS |
☕ LAB Bellacosa Mainframe
CICS BMS para Padawans
Bem-vindo ao Laboratório Bellacosa Mainframe – CICS BMS para Padawans. Este conjunto de exercícios foi projetado para conduzir um desenvolvedor COBOL iniciante por uma jornada gradual de aprendizado, partindo da criação do primeiro MAPSET BMS até a construção de uma pequena aplicação pseudo-conversacional semelhante às encontradas em bancos, seguradoras e grandes empresas.
O objetivo não é apenas aprender a sintaxe das macros DFHMSD, DFHMDI e DFHMDF, mas desenvolver a forma de pensar utilizada por desenvolvedores CICS experientes.
Ao longo dos laboratórios, o aluno será estimulado a raciocinar em termos de interface, estado, fluxo de navegação, persistência temporária de informações e interação entre usuário e aplicação. Inicialmente, o foco será compreender como uma tela 3270 é construída, como os campos são definidos, protegidos ou liberados para edição e como o BMS abstrai as características do terminal.
Em seguida, serão introduzidos os conceitos de SEND MAP, RECEIVE MAP, EIBAID, DFHAID, posicionamento dinâmico de cursor e tratamento de teclas funcionais.
Nos desafios mais avançados, espera-se que o aluno seja capaz de projetar uma aplicação utilizando pseudo-conversação, COMMAREA, paginação, mensagens de erro e validações, adotando uma abordagem semelhante à empregada em sistemas corporativos reais.
Mais importante do que memorizar comandos é desenvolver o raciocínio arquitetural necessário para compreender como aplicações CICS foram concebidas, evoluíram ao longo das décadas e continuam sustentando milhões de transações críticas diariamente no ecossistema IBM Z.
Nos desafios mais avançados, espera-se que o aluno seja capaz de projetar uma aplicação utilizando pseudo-conversação, COMMAREA, paginação, mensagens de erro e validações, adotando uma abordagem semelhante à empregada em sistemas corporativos reais.
10 Laboratórios Práticos de BMS
LAB01 – Meu Primeiro BMS
Objetivo:
Criar o primeiro MAPSET.
Resultado esperado:
HELLO BMS
PF3=Sair
Atividades
Criar um DFHMSD
Criar um DFHMDI
Criar dois DFHMDF
Gerar Physical Map
Gerar Symbolic Map
Solução
HELLO DFHMSD TYPE=&SYSPARM,
LANG=COBOL,
MODE=OUT,
TIOAPFX=YES
TELA1 DFHMDI SIZE=(24,80)
DFHMDF POS=(5,25),
LENGTH=10,
INITIAL='HELLO BMS',
ATTRB=(PROT,BRT)
DFHMDF POS=(22,2),
LENGTH=8,
INITIAL='PF3=Sair',
ATTRB=(ASKIP)
DFHMSD TYPE=FINAL
END
LAB02 – Criando Campo de Entrada
Objetivo
Campo editável.
Resultado
Nome :
______________
Atividades
Adicionar campo input
Posicionar cursor
Testar MDT
Solução
NOME DFHMDF POS=(5,15),
LENGTH=30,
ATTRB=(UNPROT,IC)
LAB03 – Campos Protegidos
Objetivo
Criar labels.
Resultado
CPF:
Cidade:
Email:
Solução
DFHMDF POS=(1,1),
LENGTH=4,
INITIAL='CPF:',
ATTRB=(ASKIP)
LAB04 – Tela Cadastro Cliente
Objetivo
Montar tela completa.
Resultado
Codigo:
Nome:
CPF:
Cidade:
Telefone:
PF3
PF5
ENTER
Atividades
Criar 5 campos
Criar mensagens
Criar PF Keys
Solução
CODIGO DFHMDF
POS=(5,15),
LENGTH=6,
ATTRB=(UNPROT,IC)
CPF DFHMDF
POS=(7,15),
LENGTH=11,
ATTRB=(UNPROT,NUM)
LAB05 – SEND MAP
Objetivo
Mostrar tela.
Atividades
Criar programa COBOL
Executar SEND
Solução
EXEC CICS SEND MAP
MAP('TELA01')
MAPSET('CLIMAP')
ERASE
FREEKB
END-EXEC.
LAB06 – RECEIVE MAP
Objetivo
Receber dados.
Atividades
Capturar nome.
Capturar CPF.
Solução
EXEC CICS RECEIVE
MAP('TELA01')
MAPSET('CLIMAP')
INTO(TELA01I)
END-EXEC.
LAB07 – Tratando ENTER e PF3
Objetivo
Usar DFHAID.
Atividades
Copy DFHAID
Verificar tecla
Solução
COPY DFHAID.
EVALUATE EIBAID
WHEN DFHENTER
PERFORM PROCESSA
WHEN DFHPF3
PERFORM SAIR
END-EVALUATE
LAB08 – Cursor Dinâmico
Objetivo
Cursor em campo inválido.
Exemplo
CPF inválido
Cursor volta CPF
Solução
MOVE -1 TO CPFL
EXEC CICS SEND
CURSOR
END-EXEC
LAB09 – Pseudo Conversação
Objetivo
Implementar COMMAREA.
Atividades
Salvar contexto
Retornar transação
Solução
EXEC CICS RETURN
TRANSID('CLI1')
COMMAREA(WS-COMM)
LENGTH(100)
END-EXEC.
Primeira vez
IF EIBCALEN = ZERO
PERFORM PRIMEIRA-VEZ
END-IF.
LAB10 – Mini Sistema Bancário
Objetivo
Criar aplicação real.
Funcionalidades
Consultar Cliente
Cadastrar
Alterar
Excluir
Paginar
PF7
PF8
PF3
Tela
==================================
CLIENTES
Codigo
Nome
CPF
PF3=Sair
PF5=Limpar
PF7=Anterior
PF8=Próximo
==================================
Desafio Extra
Implementar:
MAPFAIL
HANDLE CONDITION
HANDLE AID
FSET
FRSET
DATAONLY
MAPONLY
Gabarito Esperado
Ao final dos 10 labs o aluno deverá dominar:
✅ DFHMSD
✅ DFHMDI
✅ DFHMDF
✅ SEND MAP
✅ RECEIVE MAP
✅ DFHAID
✅ EIBAID
✅ CURSOR
✅ MDT
✅ FSET
✅ COMMAREA
✅ Pseudo-conversação
✅ CEDA
✅ CEMT
✅ INSTALL
✅ BMS Physical
✅ Symbolic Maps
🏆 Desafio Bellacosa Mainframe (Boss Fight)
Construa uma aplicação semelhante a um sistema bancário contendo:
Login
Menu Principal
Consulta Cliente
Inclusão
Alteração
Exclusão
Paginação PF7/PF8
Help PF1
Mensagens de erro
COMMAREA
TSQ para paginação
DB2 (simulado)
CEDF para debug
Se conseguir completar este laboratório, você estará muito próximo do nível esperado de um Desenvolvedor COBOL/CICS Júnior pronto para atuar em projetos corporativos IBM Z.