CICS – WRITE

La commande WRITE écrit un nouvel enregistrement dans un fichier. Les paramètres utilisés dans la commande WRITE sont les mêmes que ceux de la commande READ.

Syntaxe:

Vous trouverez ci-dessous la syntaxe de la commande WRITE :

EXEC CICS WRITE
   FILE(nomfichier)
   FROM(zone-donnee)
   RIDFLD(zone-donnee) [RBA|RRN]
   LENGTH(valeur-donnee)
   KEYLENGTH(valeur-donnee)
END-EXEC.

Voyons les paramètres utilisés dans la commande WRITE :

  • FICHIER(nomfichier)
    Spécifie le nom du fichier auquel accéder.
  • FROM(zone-donnee)
    Spécifie l’enregistrement qui doit être écrit dans l’ensemble de données auquel ce fichier fait référence.
  • LENGTH
    Spécifie la longueur, en tant que valeur binaire demi-mot (PIC S9(4) COMP), de la zone de données à partir de laquelle l’enregistrement est écrit.
  • RIDFLD(zone-donnee)
    Spécifie la clé de l’enregistrement à écrire. Si RBA ou RRN est spécifié, ce champ est interprété respectivement comme une adresse d’octet relative ou un numéro d’enregistrement relatif.
  • RBA
    Spécifie que le fichier est ESDS et que l’option RIDFLD doit être interprétée comme l’adresse d’octet relative.
  • RRN
    Spécifie que le fichier est RRDS et que l’option RIDFLD doit être interprétée comme le numéro d’enregistrement relatif.
  • 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 WRITE.

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(3).
01 WS-REC-DATA   PIC X(80).
PROCEDURE DIVISION.
      MOVE +80           TO WS-REC-LEN.
      MOVE ‘502258’      TO WS-REC-KEY.
      MOVE 6             TO WS-KEY-LEN.
      MOVE '502258IBMMAINFRAMER TUTORIALS' TO WS-REC-DATA.
      EXEC CICS WRITE
        FILE('STDLST')
        FROM(WS-REC-DATA)
        LENGTH(WS-REC-LEN)
        RIDFLD(WS-REC-KEY)
        KEYLENGTH(WS-KEY-LEN)
      END-EXEC.

La description:

Ce programme écrit les données de WS-REC-DATA dans le fichier ‘STDLST’.

Nom de fichier-‘STDLST’ est le nom du fichier que nous voulons écrire. Il s’agit du nom de fichier symbolique CICS qui identifie l’entrée FCT (table de contrôle des fichiers) pour le fichier. Les noms de fichiers peuvent comporter jusqu’à 8 caractères et doivent être placés entre guillemets s’ils sont littéraux.

Après exécution, WS-REC-DATA sera écrit dans le fichier ‘STDLST’.


Conditions d’exception de la commande WRITE :

ExceptionLa description
DISABLEDUn fichier est désactivé
FILENOTFOUNDLe nom de fichier fourni dans l’option FILE n’est pas défini pour CICS.
NOTAUTHUne vérification de la sécurité des ressources a échoué sur FILE(filename).(c’est-à-dire que l’utilisateur n’a pas suffisamment d’autorisations pour accéder au fichier).
PAS D’ESPACEAucun espace n’est disponible pour un nouvel enregistrement.
LEGERRNon-concordance entre la longueur spécifiée dans la commande et la longueur réelle de l’enregistrement.
DUPKEYLa valeur dans RIDFLD existe déjà dans le fichier.