CICS - DELETE

O comando DELETE é usado para excluir um registro que 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 Delete é a seguinte -

Sintaxe

EXEC CICS DELETE
   FILE('name')
END-EXEC.

A seguir está a sintaxe para excluir um registro diretamente sem lê-lo com a opção Atualizar -

Sintaxe

EXEC CICS DELETE
   FILE('name')
   RIDFLD(data-value)
END-EXEC.

Exemplo

A seguir está o exemplo para Group Delete. Isso pode ser feito usandoGeneric opção, onde todos os registros que satisfaçam os critérios genéricos serão excluídos. NUMRECirá conter o número de registros excluídos. O campo mencionado aqui deve ser um comp. S9 (4).

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).
01 WS-NUM-REC-DEL    PIC S9(4).
PROCEDURE DIVISION.
MOVE '11'       TO WS-STD-REC-KEY.
MOVE 2          TO WS-STD-KEY-LEN.
EXEC CICS READ
   FILE ('FL001')
   RIDFLD (WS-STD-REC-KEY)
   KEYLENGTH (WS-STD-KEY-LEN)
   GENERIC
   NUMREC (WS-NUM-REC-DEL)
END-EXEC.

Excluir exceções de comando

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

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 (DELETE com RIDFLD).

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

FILENOTFOUND

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