|
O BROWSE é uma ferramenta que permite acessar qualquer tipo de arquivo sequencialmente.
Comando STARTBR
Formato do comando:
| EXEC CICS STARTBR |
Explicação do argumento |
| DATASET ('NOME ARQUIVO') |
Especifica-se o nome do arquivo que se deseja acessar. |
| RIDFLD (WORK-CHAVE) |
Especifica-se a chave do registro a ser posicionado. |
| GENERIC |
Indica que a chave informada é parcial, ou seja, não está sendo informada a chave toda. |
| KEYLENGTH (+10) |
Especifica-se o tamanho da chave genérica.
Este arqgumento é usado em conjunto com a opção 'GRENERIC' e só pode ser usada para arquivos KSDS. |
| GTEQ |
O CICS tentará posicionar em registro com chave maior ou igual a chave informada. |
| EQUAL |
O CICS tentará posicionar em um registro com chave igual a chave informada (DEFAULT) |
| RBA |
Para arquivos ESDS, indica que a área especificada em 'RIDFLD' contém um RBA e não a chave do registro.
Neste caso, a área especificada em 'RIDFLD' deve estar definida PIC S9(008) COMP. |
Este comando é utilizado para especificar o registro em um arquivo, no qual a pesquisa sequencial terá início.
Observar que nenhum registro é recuperado, apenas o 'POINTER' é posicionado no registro indicado no comando.
Exemplo do comando:
EXEC CICS
STARTBR DATASET ('D02TAB')
RIDFLD (WORK-CHAVE)
GTEQ
END-EXEC.
|
Explicação do exemplo:
O 'POINTER' do arquivo será posicionado no registro que possua o campo chave maior ou igual ao campo 'WORK-CHAVE'.
Condição de exceção:
NOTFND: o registro informado não existe no arquivo.
Outros: DSIDERR, NOTOPEN, INVREQ, ILLOGIC, IOERR.
Comando READNEXT
Formato do comando:
| EXEC CICS READNEXT |
Explicação do argumento |
| DATASET ('NOME ARQUIVO') |
Especifica-se o nome do arquivo que se deseja acessar. |
| INTO (WORK-AREA) |
Especifica-se a área que receberá o registro. |
| RIDFLD (WORK-CHAVE) |
Especifica-se a chave do registro a ser posicionado. Deve ser o mesmo campo especificado no comando inicial STARTBR. |
| KEYLENGTH (+10) |
Especifica-se o tamanho da chave 'GENERICA'.
Apesar de nao possuir a opcao 'GENERIC' ao se especificar um tamanho menor do que o tamanho da chave tem-se uma pesquisa generica. |
| LENGTH (+100) |
Especifica-se o tamanho do registro a ser lido.
Opcional se for registro fixo. |
Este comando é utilizado para leitura do próximo registro do arquivo em ordem sequencial.
Exemplo do comando:
EXEC CICS
READNEXT DATASET ('D02TAB')
INTO (WORK-TAB)
RIDFLD (WORK-CHAVE)
END-EXEC.
|
Explicação do exemplo:
O cics irá recuperar o próximo registro do arquivo que possua o campo chave igual ao campo 'WORK-CHAVE' e o
registro recuperado será colocado na área 'WORK-TAB'.
Condiçãoo de exceção:
ENDFILE: ocorre quando for encontrado final de arquivo.
Outros: DSIDERR, NOTOPEN, INVREQ, ILLOGIC, IOERR,
LENGERR, DUPKEY.
Comando READPREV
Formato do comando:
| EXEC CICS READNEXT |
Explicação do argumento |
| DATASET ('NOME ARQUIVO') |
Especifica-se o nome do arquivo que se deseja acessar. |
| INTO (WORK-AREA) |
Especifica-se a área que receberá o registro. |
| RIDFLD (WORK-CHAVE) |
Esecifica-se a chave do registro a ser posicionado. Deve ser o mesmo campo especificado no comando inicial STARTBR. |
| KEYLENGTH (+10) |
Especifica-se o tamanho total da chave, pois não é possivel usar a opção 'GENERIC' para este comando. Opcional. |
| LENGTH (+100) |
Especifica-se o tamanho do registro a ser lido. Opcional se for registro fixo. |
Este comando é utilizado para leitura do registro anterior do arquivo em ordem sequencial. Usado apenas
em arquivos VSAM.
Exemplo do comando:
EXEC CICS
READPREV DATASET ('D02TAB')
INTO (WORK-TAB)
RIDFLD (WORK-CHAVE)
END-EXEC.
|
Explicacao do exemplo:
O CICS irá recuperar o registro anterior do arquivo que possua o campo chave igual ao campo 'WORK-CHAVE' e o
registro recuperado será colocado na area 'WORK-TAB'.
Condição de exceção:
ENDFILE: ocorre quando for encontrado final logico do arquivo, uma vez que foi encontrado o inicio
fisico do arquivo.
Outros: DSIDERR, NOTOPEN, INVREQ, ILLOGIC, IOERR, LENGERR, DUPKEY.
Comando RESETBR
Formato do comando:
| EXEC CICS READNEXT |
Explicação do argumento |
| DATASET ('NOME ARQUIVO') |
Especifica-se o nome do arquivo que se deseja acessar. |
| RIDFLD (WORK-CHAVE) |
Especifica-se a chave do registro a ser reposicionado. |
| GENERIC |
Indica que a chave informada é parcial, ou seja, nao está sendo informada a chave completa. |
| KEYLENGTH (+10) |
Especifica-se o tamanho da chave genérica.
Este argumento é usado em conjunto com a opção 'GENERIC' e sómente pode ser usada para arquivos KSDS. |
| GTEQ |
O CICS tentará posicionar em registro com chave maior ou igual a chave informada. |
| EQUAL |
O CICS tentará posicionar em um registro com chave igual a chave informada ( DEFAULT ). |
| RBA |
Para arquivos ESDS, indica que a área especificada em 'RIDFLD' contém um RBA e não a chave do registro.
Neste caso, a área especificada em 'RIDFLD' deve estar definida PIC S9(008) COMP |
Este comando é utilizado para reposicionamento de um registro no arquivo para posterior leitura. Observar que
nenhum registro é recuperado, apenas o 'POINTER' é posicionado no registro indicado no comando.
Este comando só pode ser executado se tiver sido executado anteriormente com sucesso o comando 'STARTBR'.
A opção 'RIDFLD' deve especificar a mesma área de dados especificada na opção 'RIDFLD' do comando 'STARTBR'
correspondente, porém o conteúdo desta área pode ser diferente.
Exemplo do comando:
EXEC CICS
RESETBR DATASET ('D02TAB')
RIDFLD (WORK-CHAVE)
END-EXEC.
|
Explicação do exemplo:
O 'POINTER' do arquivo será reposicionado no registro que possua o campo chave igual ao campo 'WORK-CHAVE'.
Notar que 'EQUAL' é assumido no exemplo do comando acima.
Condição de exceção:
NOTFND: o registro informado não existe no arquivo.
Outros: DSIDERR, NOTOPEN, INVREQ, ILLOGIC, IOERR.
Comando ENDBR
Formato do comando:
| EXEC CICS ENDBR |
Explicação do argumento |
| DATASET ('NOME ARQUIVO') |
Especifica-se o nome do arquivo que se deseja acessar. |
Este comando é utilizado para terminar o BROWSE em um arquivo.
Este comando é obrigatorio quando for efetivada uma pesquisa sequencial pois se tal fato não ocorrer, o BROWSE
não terminará, ficará suspenso.
Exemplo do comando:
EXEC CICS
ENDBR DATASET ('D02TAB')
END-EXEC.
|
Explicação do exemplo:
O CICS terminará o BROWSE no arquivo 'D02TAB'.
Condição de exceção:
INVREQ: ocorre se o comando for executado sem que tenha sido executado um comando 'STARTBR' com
sucesso.
Outros: DSIDERR, ILLOGIC, NOTOPEN.
Consideracao final sobre a pesquisa sequencial
Se a condição de exceção NOTFND ocorrer durante a pesquisa sequencial, há a necessidade de codificar o
comando RESETBR para reposicionar em um registro para posterior leitura ou codificar o comando ENDBR para
terminara pesquisa sequencial
|