🧠 Explicação
O comando EXEC CICS READ
é utilizado para ler registros de arquivos no ambiente CICS, seja para simples consulta ou com intenção de atualização (UPDATE
). Pode ser usado com arquivos locais ou remotos, acessando registros por chave, endereço relativo (RBA/XRBA) ou número relativo (RRN). O conteúdo lido pode ser armazenado diretamente em uma área de dados ou por ponteiro (SET
).
🔧 Usos mais comuns
-
Ler registros de arquivos VSAM ou tabelas de dados no CICS.
-
Localizar registros por chave completa ou chave genérica (
GENERIC
). -
Recuperar registros com integridade de leitura em modo RLS (
CONSISTENT
ouREPEATABLE
). -
Preparar registros para alteração com
UPDATE
. -
Navegar em arquivos com chave maior ou igual (
GTEQ
).
🧾 Sintaxe
EXEC CICS READ
FILE(nome-arquivo)
RIDFLD(variavel-chave)
[ INTO(variavel-dados) ]
[ LENGTH(tamanho) ]
[ KEYLENGTH(tam-chave) ]
[ GENERIC ]
[ GTEQ | EQUAL ]
[ UPDATE ]
[ CONSISTENT | REPEATABLE | UNCOMMITTED ]
[ NOSUSPEND ]
[ SET(ponteiro) ]
[ TOKEN(variavel-token) ]
[ RBA | XRBA | RRN ]
[ SYSID(nome-regiao) ]
END-EXEC.
💻 Exemplo prático
1. Leitura simples por chave:
EXEC CICS READ
INTO(AREA-DADOS)
FILE('MASTER')
RIDFLD(CHAVE-REG)
END-EXEC.
2. Leitura com chave genérica, GTEQ e UPDATE:
EXEC CICS READ
INTO(AREA-REGISTRO)
LENGTH(TAM-REG)
FILE('CLIENTES')
RIDFLD(CHAVE-PARTE)
KEYLENGTH(4)
GENERIC
GTEQ
UPDATE
END-EXEC.
📌 Regras
-
RIDFLD
é obrigatório e deve conter a chave ou o endereço do registro. -
Se
INTO
for usado,LENGTH
deve ser especificado para registros de tamanho variável. -
UPDATE
bloqueia o registro para alterações futuras. -
GENERIC
exige queKEYLENGTH
seja menor que o tamanho total da chave. -
RBA
,XRBA
eRRN
só são válidos para tipos específicos de arquivos (ESDS, RRDS etc). -
NOSUSPEND
impede espera se o registro estiver bloqueado, retornandoRECORDBUSY
. -
O uso de
CONSISTENT
,REPEATABLE
eNOSUSPEND
exige que o arquivo esteja no modo RLS. -
O uso de
TOKEN
implicaUPDATE
e vincula o READ com um futuroREWRITE
ouDELETE
.
💡 Dicas
-
Use
GTEQ
para simular leitura sequencial a partir de uma chave. -
Combine
GENERIC + GTEQ
para buscas por prefixo. -
Prefira
SET(ptr-ref)
para melhor performance em sistemas com muitos acessos. -
Sempre verifique
EIBRESP
eEIBRESP2
para tratar exceções comoNOTFND
,LOCKED
,RECORDBUSY
ouLENGERR
. -
Evite
XRBA
para conjuntos de dados KSDS, pois não é suportado. -
Em arquivos RLS, defina corretamente o nível de integridade de leitura para evitar conflitos entre tarefas.
✅ Conclusão
O comando EXEC CICS READ
é um recurso poderoso e flexível para recuperação de registros em sistemas CICS. Com suas diversas opções, permite desde leituras simples até acessos com controle de concorrência, bloqueios e integridade transacional. Quando bem utilizado, contribui para o desempenho e segurança no acesso aos dados em ambientes corporativos de missão crítica.