🧠 Explicação
O comando EXEC CICS STARTBR é utilizado para iniciar uma navegação em um arquivo VSAM ou tabela de dados. Ele não lê registros imediatamente, apenas posiciona o navegador no ponto de início da leitura. A leitura de fato ocorre nos comandos READNEXT ou READPREV. Esse comando serve como ponto de partida para percorrer registros de forma sequencial ou por chave.
🔧 Usos mais comuns
-
Posicionar o cursor de leitura antes de um
READNEXTouREADPREV. -
Navegar sequencialmente por arquivos KSDS, RRDS ou ESDS.
-
Realizar navegação por chave (inclusive genérica) ou por endereço (RBA/RRN/XRBA).
-
Iniciar leituras com base em critérios específicos (GTEQ, EQUAL, GENERIC).
-
Usar múltiplos navegadores com REQID distintos.
🧾 Sintaxe
EXEC CICS STARTBR
FILE("CLIENTES")
RIDFLD(CHAVE-CLI)
KEYLENGTH(10)
GTEQ
END-EXEC.
Ou, para navegação por RBA:
EXEC CICS STARTBR
FILE("LOGESDS")
RIDFLD(ENDERECO-RBA)
RBA
END-EXEC.
💻 Exemplo prático
WORKING-STORAGE SECTION.
01 CHAVE-CLI PIC X(10) VALUE '0001234567'.
EXEC CICS STARTBR
FILE("CLIENTES")
RIDFLD(CHAVE-CLI)
KEYLENGTH(10)
GTEQ
END-EXEC.
PERFORM UNTIL FIM-DO-ARQUIVO
EXEC CICS READNEXT
FILE("CLIENTES")
INTO(AREA-CLI)
RIDFLD(CHAVE-CLI)
END-EXEC
DISPLAY AREA-CLI
END-PERFORM.
EXEC CICS ENDBR FILE("CLIENTES") END-EXEC.
📌 Regras
-
STARTBRnão lê o registro — apenas posiciona. -
GTEQ(default) posiciona na primeira chave maior ou igual à informada. -
EQUALexige correspondência exata da chave. -
GENERICpermite uso de prefixos de chave, requerendoKEYLENGTH. -
RIDFLDdeve conter a chave, RBA, RRN ou XRBA conforme o tipo de arquivo. -
Para arquivos remotos, o parâmetro
SYSIDdeve ser usado. -
Use
REQIDse for necessário manter múltiplas navegações simultâneas. -
RBA,RRNeXRBAsão específicos para tipos de arquivos base e devem ser usados com cuidado.
💡 Dicas
-
Sempre finalize a navegação com
ENDBRouSYNCPOINTpara liberar recursos. -
Para navegar desde o início do arquivo, use
RIDFLDzerado comGTEQ. -
KEYLENGTH(0)só deve ser usado comGTEQ. Nunca comEQUAL. -
Em arquivos com concorrência, um registro posicionado em
STARTBRpode ser excluído antes doREADNEXT. Use LSR se isso for crítico. -
XRBAdeve ser usado em ESDS com mais de 4GB (endereçamento estendido).
🚨 Condições que podem ocorrer
-
NOTFND: chave ou registro inicial não foi localizado. -
INVREQ: parâmetros inconsistentes (ex:KEYLENGTHfora do padrão). -
NOTOPEN: arquivo não está aberto para leitura. -
FILENOTFOUND: nome de arquivo inexistente no CICS. -
IOERR: erro de entrada/saída no arquivo. -
ILLOGIC: falha lógica no acesso ao VSAM. -
SYSIDERR: erro no acesso a arquivo remoto. -
DISABLED: recurso está desativado. -
NOTAUTH: falta de permissão para acessar o recurso.
✅ Conclusão
O EXEC CICS STARTBR é a porta de entrada para navegações ordenadas em arquivos VSAM e tabelas no CICS. Com ele, você posiciona precisamente onde a leitura vai começar, seja por chave, endereço ou número de registro. Quando bem utilizado com READNEXT e ENDBR, garante controle total sobre o acesso sequencial de dados — essencial para tarefas de consulta, validação e relatórios em aplicações CICS.