CICS - REWRITE

O comando REWRITE é usado para modificar um registro que já está presente em um arquivo. Antes deste comando, o registro deve ser lido com um comando READ UPDATE. Os parâmetros são os mesmos descritos antes. A sintaxe do comando Rewrite é a seguinte -

Sintaxe

EXEC CICS REWRITE
   FILE (name)
   FROM (data-area) 
   LENGTH (data-value)
END-EXEC.

Exemplo

O exemplo a seguir mostra como escrever um registro no arquivo 'FL001' onde Studentid é a chave primária. Um novo registro com 101 id de aluno será escrito no arquivo -

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 ‘101’         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)
   UPDATE
END-EXEC.
MOVE '100Mohtahim M TutorialsPnt' TO WS-STD-REC.
EXEC CICS REWRITE
   FILE ('FL001')
   FROM (WS-STD-REC)
   LENGTH (WS-STD-REC-LEN)
END-EXEC.

Reescrever exceções de comando

A tabela a seguir lista as exceções que surgem durante uma instrução REWRITE -

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

NOTOPEN

O arquivo não está aberto.

2

LENGERR

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

3

NOTAUTH

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

4

INVREQ

Reescreva sem READ prévio com UPDATE.

5

NOSPACE

Não há espaço suficiente no conjunto de dados.