CICS – DELETE

La commande DELETE est utilisée pour supprimer un enregistrement d’un fichier VSAM – KSDS et RRDS.

Syntaxe:

Vous trouverez ci-dessous la syntaxe de la commande DELETE.

EXEC CICS DELETE
   FILE('filename')
   RIDFLD(data-area) [RBA|RRN]
   KEYLENGTH(data-value)
   [GENERIC|NUMERIC(rec-number)]
END-EXEC.

Les enregistrements des fichiers VSAM KSDS et RRDS peuvent être supprimés, mais pas des fichiers VSAM ESDS.

L’option NUMREC renverra le nombre d’enregistrements supprimés lors d’une suppression GENERIC.

KEYLENGTH doit être spécifié pour une suppression GENERIC.


La commande DELETE peut être émise pour supprimer des enregistrements d’un ensemble de données de deux manières :

  1. Émis après une commande READ avec l’option UPDATE pour supprimer l’enregistrement lu.
    Syntaxe :
    EXEC CICS DELETE
    FILE('nomfichier')
    END-EXEC
  2. Émis avec l’option RIDFLD lorsqu’il n’y a pas d’option READ avec UPDATE préalable. Cela supprimera l’enregistrement dont la clé correspond au RIDFLD.
    Syntaxe :
    EXEC CICS DELETE
    FILE('nomfichier')
    RIDFLD(zone-donnee)
    KEYLENGTH(valeur-donnee)
    END-EXEC

Voyons les paramètres utilisés dans la commande DELETE.

  • FILE(nomfichier)
    Spécifie le nom du fichier auquel accéder.
  • RIDFLD(zone-donnee)
    Spécifie le champ d’identification de l’enregistrement. Il porte le nom de la zone de données contenant la clé de l’enregistrement que l’on souhaite supprimer.
  • KEYLENGTH(valeur-donnee)
    Spécifie la longueur (demi-mot binaire) de la clé qui a été spécifiée dans l’option RIDFLD


Exemple:

Voyons un exemple de programme CICS pour la commande DELETE.

IDENTIFICATION DIVISION.
PROGRAM-ID. IBMMF.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-REC-LEN         PIC S9(4) COMP.
01 WS-KEY-LEN         PIC S9(4) COMP.
01 WS-REC-KEY         PIC 9(6).
01 WS-REC-DATA        PIC X(80).
01 WS-DEL-REC         PIC S9(4).
PROCEDURE DIVISION.
        MOVE '502258'       TO WS-REC-KEY.
        MOVE 6              TO WS-KEY-LEN.

        EXEC CICS DELETE
           FILE('STDLST')
           RIDFLD(WS-REC-KEY)
           KEYLENGTH(WS-KEY-LEN)
           GENERIC
           NUMREC(WS-DEL-REC)
        END-EXEC.

La description:

Cet exemple pour supprimer plus d’un enregistrement. Cela peut être fait en utilisant l’option Générique dans la commande Supprimer, où tous les enregistrements qui satisfont aux critères génériques seront supprimés. NUMREC contiendra le nombre d’enregistrements supprimés. Le champ mentionné ici doit être un demi-mot binaire (S9(4) comp).


Supprimer les conditions d’exception de la commande :

ExceptionLa description
DISABLEDUn fichier est désactivé
NOTOPENLe fichier n’est pas ouvert.
NOTAUTHUne vérification de la sécurité des ressources a échoué sur FILE(nomfile).(c’est-à-dire que l’utilisateur n’a pas suffisamment d’autorisations pour accéder au fichier).
FILENOTFOUNDLe nom de fichier n’est pas disponible dans FCT.
INVREQCommande de suppression exécutée sans commande READ préalable avec l’option UPDATE.