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)