🧠 Explicação
O comando EXEC CICS SEND MAP é utilizado para enviar telas (mapas BMS) para o terminal 3270. Pode ser usado para exibir apenas a estrutura da tela (máscara) ou para atualizar os dados exibidos. Também permite controlar o cursor, apagar a tela anterior, desbloquear o teclado e muito mais.
🔧 Usos mais comuns
-
Exibir o layout inicial da tela (MAPONLY + ERASE).
-
Preencher campos da tela com dados do programa (DATAONLY + FROM).
-
Posicionar o cursor em local fixo (físico) ou variável (lógico).
-
Atualizar dados na tela sem perder o layout já exibido.
-
Controlar o comportamento do terminal (ALARM, FREEKB, FRSET etc.).
🧾 Sintaxe
EXEC CICS SEND
MAP("TELA01")
MAPSET("MAPSET1")
MAPONLY
ERASE
CURSOR(VALOR)
END-EXEC.
EXEC CICS SEND
MAP("TELA01")
MAPSET("MAPSET1")
DATAONLY
FROM(AREA-DADOS)
CURSOR(VALOR)
END-EXEC.
💻 Exemplo prático
Posicionamento físico:
77 POSCURSOR PIC S9(4) COMP VALUE 815.
EXEC CICS SEND
MAP("TELA01")
MAPSET("MAPSET1")
MAPONLY
ERASE
CURSOR(POSCURSOR)
END-EXEC.
Posicionamento lógico (ex: campo CODCLI):
MOVE -1 TO CODCLIL.
EXEC CICS SEND
MAP("TELA01")
MAPSET("MAPSET1")
DATAONLY
FROM(TELA01O)
CURSOR
END-EXEC.
📌 Regras
-
MAPONLYenvia apenas o layout fixo da tela. -
DATAONLYenvia apenas os dados variáveis da WORKING-STORAGE. -
Sem
MAPONLYouDATAONLY, o efeito será de ambos (layout + dados). -
FROMexige uma área com o mesmo nome do mapa + sufixoO(ex:TELA01O). -
CURSOR(VALOR)posiciona fisicamente;CURSORsozinho usa o posicionamento lógico. -
ERASEdeve ser usado no primeiroSENDda transação para limpar a tela.
💡 Dicas
-
Use
FREEKBpara desbloquear o teclado após o envio da tela. -
FRSETdesliga todos os bits MDT, limpando status de modificação dos campos. -
ERASEAUPapaga apenas os campos desprotegidos. -
O cursor pode ser posicionado com valor fixo (
CURSOR(815)) ou variável (CURSOR(POSCURSOR)). -
O
MAPSETdeve estar carregado na biblioteca do CICS.
🚨 Condições que podem ocorrer
-
INVMPSZ: mapa maior que a tela. -
INVREQ: comando inválido ou parâmetros inconsistentes. -
ITEMERR: erro ao acessar campo mapeado. -
OVERFLOW: dados não cabem na tela. -
IGREQID,IGREQCD,INVPARTN,TSIOERR,WRBRK: falhas operacionais diversas. -
RETPAGE: usado comSETpara manipular páginas lógicas.
✅ Conclusão
O SEND MAP é o coração da interface homem-máquina em ambientes CICS. Ele te dá o controle total da exibição: do layout à manipulação de dados, cursor, atributos e comportamento do terminal. Dominar seus parâmetros é essencial para criar telas profissionais, limpas e funcionais.