Domingo 14 Agosto 2022

Condições: CHANGED, DUPREC, FILENOTFOUND, ILLOGIC, INVREQ, IOERR, ISCINVREQ, LENGERR, LOCKED, NOSPACE, NOTAUTH, NOTFND, RECORDBUSY, SYSIDERR

Este comando é threadsafe se o arquivo ao qual se refere for:

Definido como remoto e a função do comando é enviada por meio de uma conexão IPIC para uma região CICS remota.

Definido como VSAM ou RLS local.

Este comando não é thread-safe se o arquivo ao qual se refere for:

Definido como remoto e a função do comando é enviada por meio de uma conexão não IPIC.

Definido como uma tabela de dados compartilhados, tabela de dados do recurso de acoplamento ou arquivo BDAM.

Descrição:

REWRITE atualiza um registro em um arquivo em um sistema local ou remoto. Você deve sempre preceder este comando com uma leitura com a opção UPDATE.

Para conjuntos de dados VSAM, você não deve alterar o campo-chave no registro.

Quando este comando é usado para atualizar um registro em uma tabela de dados mantida pelo CICS, a atualização é feita no VSAM KSDS de origem e na tabela de dados na memória. Os detalhes do comando para uma tabela mantida por CICS são os mesmos que para um VSAM KSDS.

Quando este comando é usado para atualizar um registro em uma tabela de dados mantida pelo usuário, a atualização é feita na tabela de dados na memória.

Quando este comando é usado para atualizar registros em uma tabela de dados do recurso de acoplamento, a atualização é feita apenas na tabela de dados no recurso de acoplamento.

Se uma atualização para uma tabela mantida pelo usuário ou tabela de dados do recurso de acoplamento não for bem-sucedida porque não há espaço suficiente, uma resposta NOSPACE será retornada ao comando. O CICS também emite a mensagem DFHFC0432 para alertar os administradores do sistema sobre a situação.

Opções:

ARQUIVO ( nome do arquivo )

especifica o nome do arquivo a ser acessado.

Se SYSID for especificado, o conjunto de dados ao qual este arquivo se refere é considerado como estando em um sistema remoto, independentemente de o nome estar definido para o CICS. Caso contrário, a definição do recurso é usada para descobrir se o conjunto de dados está em um sistema local ou remoto.

FROM ( área de dados )

especifica o registro que deve ser gravado no conjunto de dados referido por este arquivo.

LENGTH ( valor de dados )

especifica o comprimento, como um valor binário de meia palavra, da área de dados de onde o registro é gravado.

Esta opção deve ser especificada se SYSID for especificado.

Se o arquivo estiver em um sistema remoto, o parâmetro LENGTH não precisa ser definido aqui, mas deve ser definido na definição de recurso do arquivo.

Se o arquivo estiver em um sistema local, o parâmetro LENGTH deve ser definido para registros de comprimento variável, usando a opção INTO, mas não para registros de comprimento fixo. É, entretanto, aconselhável especificar o comprimento para registros de comprimento fixo porque isso faz com que uma verificação seja feita se o registro que está sendo gravado não é maior do que o definido para o conjunto de dados.

NOSUSPEND (apenas RLS)

A solicitação não espera se o VSAM estiver mantendo um bloqueio ativo no registro, incluindo registros bloqueados como resultado de um DEADLOCK.

A contenção de bloqueio pode ocorrer se a atualização envolver mudanças feitas no modo RLS para registros em um conjunto de dados VSAM que possui um ou mais índices alternativos e um índice alternativo é definido com chaves exclusivas.

Na maioria dos outros casos, você não deve precisar dessa opção porque o bloqueio ativo é adquirido quando a tarefa emite o comando READ UPDATE .

Nota: As solicitações que especificam NOSUSPEND aguardam pelo menos 1 segundo antes que o CICS retorne a resposta RECORDBUSY.

SYSID ( nome do sistema )

especifica o nome do sistema para o qual a solicitação é direcionada.

TOKEN ( área de dados )

especifica como um valor binário de palavra inteira um identificador de pedido exclusivo para um REWRITE, usado para associá-lo a um comando READ, READNEXT ou READPREV anterior que especificou UPDATE.

O TOKEN pode ser enviado com a função. No entanto, se uma solicitação especificando TOKEN for enviada a um membro da família de produtos CICS que não suporta a opção TOKEN, a solicitação falhará:

 

Exemplos:

EXEC CICS REWRITE

     FROM(RECORD)

     FILE('MAIN')

     TOKEN(APTOK)