CICS - Pesquisa sequencial de arquivos - BROWSE


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

CICS - Pesquisa sequencial de arquivos - BROWSE

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