CICS - RÉécrire

La commande REWRITE permet de modifier un enregistrement déjà présent dans un fichier. Avant cette commande, l'enregistrement doit être lu avec une commande READ UPDATE. Les paramètres sont les mêmes que ceux décrits précédemment. La syntaxe de la commande Rewrite est la suivante -

Syntaxe

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

Exemple

L'exemple suivant montre comment écrire un enregistrement dans le fichier 'FL001' où Studentid est la clé primaire. Un nouvel enregistrement avec 101 ID étudiant sera écrit dans le fichier -

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.

Réécrire les exceptions de commande

Le tableau suivant répertorie les exceptions qui surviennent lors d'une instruction REWRITE -

Sr. Non Exception et description
1

NOTOPEN

Le fichier n'est pas ouvert.

2

LENGERR

Non-concordance entre la longueur spécifiée dans la commande et la longueur réelle de l'enregistrement.

3

NOTAUTH

Si l'utilisateur ne dispose pas des autorisations suffisantes pour utiliser le fichier.

4

INVREQ

Réécrire sans READ préalable avec UPDATE.

5

NOSPACE

Il n'y a pas assez d'espace dans le jeu de données.