🧠 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 (
CONSISTENTouREPEATABLE). -
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
INTOfor usado,LENGTHdeve ser especificado para registros de tamanho variável. -
UPDATEbloqueia o registro para alterações futuras. -
GENERICexige queKEYLENGTHseja menor que o tamanho total da chave. -
RBA,XRBAeRRNsó são válidos para tipos específicos de arquivos (ESDS, RRDS etc). -
NOSUSPENDimpede espera se o registro estiver bloqueado, retornandoRECORDBUSY. -
O uso de
CONSISTENT,REPEATABLEeNOSUSPENDexige que o arquivo esteja no modo RLS. -
O uso de
TOKENimplicaUPDATEe vincula o READ com um futuroREWRITEouDELETE.
💡 Dicas
-
Use
GTEQpara simular leitura sequencial a partir de uma chave. -
Combine
GENERIC + GTEQpara buscas por prefixo. -
Prefira
SET(ptr-ref)para melhor performance em sistemas com muitos acessos. -
Sempre verifique
EIBRESPeEIBRESP2para tratar exceções comoNOTFND,LOCKED,RECORDBUSYouLENGERR. -
Evite
XRBApara 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.