CICS - LEIA

O comando READ lê os dados de um arquivo usando a chave primária. A seguir está a sintaxe do comando READ -

Sintaxe

EXEC CICS READ
   FILE('name')
   INTO(data-area)
   RIDFLD(data-area)
   LENGTH(data-value)
   KEYLENGTH(data-value)
END-EXEC.

A tabela a seguir lista os parâmetros usados ​​no comando READ -

Sr. Não Parâmetro e Descrição
1

FILE

Nome do arquivo é o nome do arquivo que desejamos ler. Este é o nome do arquivo simbólico CICS que identifica a entrada FCT para o arquivo. Os nomes dos arquivos podem ter até 8 caracteres e devem ser colocados entre aspas se forem literais.

2

INTO

A área de dados é a variável na qual o registro deve ser lido, geralmente uma estrutura no armazenamento de trabalho. O INTO é necessário para o uso do comando READ.

3

RIDFLD

Possui o nome da área de dados que contém a chave do registro que queremos ler.

4

LENGTH

Ele especifica o número máximo de caracteres que podem ser lidos na área de dados especificada. Deve ser um valor binário de meia palavra (PIC S9 (4) COMP). Depois que o comando READ é concluído, o CICS substitui o valor máximo que especificamos pelo comprimento verdadeiro do registro. Por esse motivo, devemos especificar LENGTH como o nome de uma área de dados em vez de um literal e devemos reinicializar essa área de dados se a usarmos para LENGTH mais de uma vez no programa. Um registro mais longo gerará uma condição de erro.

5

KEYLENGTH

Ele especifica o comprimento da chave.

Exemplo

O exemplo a seguir mostra como ler um registro do arquivo 'FL001' onde Student-id é a chave primária -

IDENTIFICATION DIVISION.                                         
PROGRAM-ID. HELLO.                                               
DATA DIVISION. 
WORKING-STORAGE SECTION.
01 WS-STD-REC-LEN    PIC S9(4) COMP.
01 WS-STD-KEY-LEN    PIC S9(4) COMP.
01 WS-STD-REC-KEY    PIC 9(3).
01 WS-STD-REC        PIC X(70).
PROCEDURE DIVISION.
MOVE +70           TO WS-STD-REC-LEN.
MOVE ‘100’         TO WS-STD-REC-KEY.
MOVE 3             TO WS-STD-KEY-LEN.
EXEC CICS READ
   FILE ('FL001')
   INTO (WS-STD-REC)
   LENGTH (WS-STD-REC-LEN)
   RIDFLD (WS-STD-REC-KEY)
   KEYLENGTH (WS-STD-KEY-LEN)
END-EXEC.

Leia as opções de comando

As seguintes opções podem ser usadas com o comando READ -

  • GENERIC- É usado quando não sabemos o valor-chave completo. Por exemplo, queremos um registro cuja chave primária comece com '10' e o resto da chave pode ser qualquer coisa. Embora o comprimento da chave seja de 3 caracteres, estamos mencionando apenas 2. É importante mencionar o comprimento da chave, que fornece o comprimento para o qual ela precisa fazer a correspondência. O primeiro registro que atender aos critérios será selecionado.

  • UPDATE- Especifica que pretendemos atualizar o registro na transação atual. Especificar UPDATE dá à sua transação o controle exclusivo do registro solicitado. Deve ser usado quando quisermos reescrever o registro.

  • EQUAL - Especifica que queremos apenas o registro cuja chave corresponda exatamente ao que é especificado por RIDFLD.

  • GTEQ - Especifica que queremos o primeiro registro cuja chave é maior ou igual à chave especificada.

EXEC CICS READ
   FILE('name')
   INTO(data-area)
   RIDFLD(data-area)
   LENGTH(data-value)
   KEYLENGTH(data-value)
   GENERIC
   UPDATE
   EQUAL
   GTEQ
END-EXEC.

Ler exceções de comando

A tabela a seguir mostra a lista de exceções que surgem durante a instrução READ -

Sr. Não Exceção e descrição
1

NOTOPEN

O arquivo não está aberto.

2

NOTFND

O registro que está sendo pesquisado não existe no conjunto de dados.

3

FILENOTFOUND

A entrada do arquivo não é feita na FCT.

4

LENGERR

Incompatibilidade entre o comprimento especificado no comando e o comprimento real do registro.

5

NOTAUTH

Se o usuário não tiver permissões suficientes para usar o arquivo.

6

DUPKEY

Se mais de 1 registro satisfizer a condição da chave alternativa.