🧠 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
READNEXT
ouREADPREV
. -
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
-
STARTBR
não lê o registro — apenas posiciona. -
GTEQ
(default) posiciona na primeira chave maior ou igual à informada. -
EQUAL
exige correspondência exata da chave. -
GENERIC
permite uso de prefixos de chave, requerendoKEYLENGTH
. -
RIDFLD
deve conter a chave, RBA, RRN ou XRBA conforme o tipo de arquivo. -
Para arquivos remotos, o parâmetro
SYSID
deve ser usado. -
Use
REQID
se for necessário manter múltiplas navegações simultâneas. -
RBA
,RRN
eXRBA
são específicos para tipos de arquivos base e devem ser usados com cuidado.
💡 Dicas
-
Sempre finalize a navegação com
ENDBR
ouSYNCPOINT
para liberar recursos. -
Para navegar desde o início do arquivo, use
RIDFLD
zerado comGTEQ
. -
KEYLENGTH(0)
só deve ser usado comGTEQ
. Nunca comEQUAL
. -
Em arquivos com concorrência, um registro posicionado em
STARTBR
pode ser excluído antes doREADNEXT
. Use LSR se isso for crítico. -
XRBA
deve 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:KEYLENGTH
fora 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.