END-REWRITE |
Fin de réécriture |
|---|---|
| Cobol | |
Syntaxe
|
REWRITE recordname [FROM identifier] END-REWRITE |
|
REWRITE recordname [FROM identifier] [; INVALID KEY imperativestatement] END-REWRITE |
Paramètres
| Nom | Description |
|---|---|
| recordname | Ce paramètre désigne le nom de l'enregistrement logique du fichier qui doit être réécrit. Il identifie l'enregistrement déjà lu et modifié. |
| identifier | Ce paramètre permet d'indiquer une zone de travail contenant les nouvelles données à utiliser pour remplacer le contenu de recordname. |
| INVALID KEY | Ce paramètre permet de spécifier une instruction à exécuter si la réécriture échoue en raison d'une violation de clef (par exemple, clef inexistante). |
| imperativestatement | Ce paramètre représente l'instruction ou le bloc d'instructions à exécuter si une erreur de clé (INVALID KEY) se produit. |
Description
Cette instruction permet d'indiquer la fin d'une instruction REWRITE.
Remarques
- Délimitation explicite du bloc REWRITE : L'instruction END-REWRITE permet de clore explicitement une opération de réécriture de fichier commencée avec le mot clef REWRITE. Elle est particulièrement utile dans les structures de contrôle longues ou imbriquées, car elle améliore la lisibilité du code en précisant clairement où se termine l'action de mise à jour du fichier.
- Utilité dans les constructions structurées : Dans un programme COBOL moderne, l'usage des instructions terminées par END-xxx favorise une programmation structurée. END-REWRITE est dans ce sens recommandé pour éviter les ambiguïtés dans les blocs imbriqués, surtout lorsqu'un REWRITE est conditionné par un IF ou suivi de traitements complexes.
- Gestion des erreurs via INVALID KEY : L'option INVALID KEY, couplée à REWRITE, permet de réagir aux erreurs de réécriture, notamment en cas de tentative de mise à jour sur un enregistrement mal positionné ou inexistant. L'ajout de END-REWRITE permet d'encadrer proprement ce traitement conditionnel, améliorant ainsi la robustesse du programme.
- Séparation logique des traitements : Grâce à END-REWRITE, il est plus facile pour le développeur de localiser où se termine exactement la mise à jour d'un enregistrement. Cela permet de distinguer visuellement le traitement de réécriture du reste du processus, réduisant ainsi les erreurs d'interprétation lors de la maintenance.
- Cohérence avec les autres blocs COBOL : Comme pour END-IF, END-PERFORM ou END-READ, l'instruction END-REWRITE s'inscrit dans une volonté de standardisation du langage COBOL. Elle rend le code plus cohérent et harmonieux, en apportant une terminaison explicite à chaque structure d'action ou de décision.
- Compatibilité et portabilité du code : Certains compilateurs COBOL modernes exigent ou recommandent l'usage d'instructions END-xxx pour valider la syntaxe d'un programme. L'utilisation de END-REWRITE assure donc une meilleure compatibilité avec ces environnements et favorise la portabilité du code entre systèmes COBOL.
- Sécurité des données dans les traitements de fichier : Encadrer correctement une instruction REWRITE avec END-REWRITE peut contribuer à une meilleure maîtrise des transactions de fichier. Cela limite les risques d'effets de bord ou de confusion sur les enregistrements en cours de traitement, surtout lorsqu'on travaille en accès direct ou indexé.
- Bonne pratique pour les longs blocs de traitement : Dans les programmes complexes où un REWRITE est accompagné de nombreuses instructions secondaires (validation, journalisation, contrôle), l'utilisation de END-REWRITE permet de clairement borner cette section. C'est une bonne pratique qui améliore la lisibilité du code source, tant pour l'auteur que pour d'éventuels relecteurs ou mainteneurs.
Dernière mise à jour : Jeudi, le 28 juillet 2011