🧠 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
-
MAPONLY
envia apenas o layout fixo da tela. -
DATAONLY
envia apenas os dados variáveis da WORKING-STORAGE. -
Sem
MAPONLY
ouDATAONLY
, o efeito será de ambos (layout + dados). -
FROM
exige uma área com o mesmo nome do mapa + sufixoO
(ex:TELA01O
). -
CURSOR(VALOR)
posiciona fisicamente;CURSOR
sozinho usa o posicionamento lógico. -
ERASE
deve ser usado no primeiroSEND
da transação para limpar a tela.
💡 Dicas
-
Use
FREEKB
para desbloquear o teclado após o envio da tela. -
FRSET
desliga todos os bits MDT, limpando status de modificação dos campos. -
ERASEAUP
apaga apenas os campos desprotegidos. -
O cursor pode ser posicionado com valor fixo (
CURSOR(815)
) ou variável (CURSOR(POSCURSOR)
). -
O
MAPSET
deve 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 comSET
para 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.