|
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)
|
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 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
|