Conceito
O comando READ é utilizado para ler registros dos três tipos de arquivos VSAM; ESDS (sequenciais), RRDS (relativos) e KSDS (indexados). Entretanto, em ambientes CICS, a maioria dos arquivos são do tipo KSDS e estes são acessados randomicamente na maioria das vezes.
Formato
| EXEC CICS |
||
| READ | FILE(nome-do-arquivo) |
|
| INTO(nome-da-area-de-dados) | ||
| RIDFLD(nome-de-campo) |
||
| [RESP(nome-de-campo) | ||
| END-EXEC |
| Opções | Descrição |
| FILE | Especifica o nome do arquivo que contém os registros a serem lidos |
| INTO | Especifica o nome da área de dados onde o registro lido é gravado |
| RIDFLD | Especifica o nome do campo que contém a chave do registro a ser lido (KSDS) |
| RESP | Especifica o nome do campo onde o CICS armazena o response code (equivalente ao file status) da operação de leitura |
Exemplo
| EXEC CICS |
||
| READ | FILE('CUSTMAS') |
|
| INTO(CUSTOMER-MASTER-RECORD) | ||
| RIDFLD(CUSTNOI) | ||
| RESP(RESPONSE-CODE) | ||
| END-EXEC | ||
| IF RESPONSE-CODE = DFHRESP(NORMAL) |
||
| - | ||
| - | ||
Considerações
As três opções obrigatórias no comando, fornecem o nome do arquivo, a área onde o registro deve ser armazenado após a leitura e o campo onde está a chave do registro a ser lido.
A opção RESP é utilizada para determinar se a operação de leitura foi bem sucedida. Após a operação de leitura o CICS coloca um response code no campo nomeado na opção RESP. O campo então pode ser testado para se verificar se a operação de leitura foi bem sucedida ou não. Utiliza-se a palavra chave RFHRESP para testar as condições. Para testar a condição de registro não encontrado utiliza-se NOTFND entre parênteses após DFHRESP. Para testar se a operação foi bem sucedida utiliza-se NORMAL. As condições possíveis para as operações de I/O bem como outras serão apresentadas nas aulas subsequentes.
A opção RESP pode ser utilizada em qualquer comando CICS. O response code retornado pelo CICS irá variar de acordo com a função do comando. Os diversos response codes serão vistos à medida da evolução das aulas.