COPY |
Copie |
|---|---|
| Cobol | |
Syntaxe
| COPY textname [(OF|IN) libraryname] [SUPPRESS] [REPLACING copyoperand BY copyoperand+]. |
Paramètres
| Nom | Description |
|---|---|
| textname | Ce paramètre permet d'indiquer le nom du texte source ou de la copie à insérer. Il s'agit généralement d'un nom de membre contenu dans une bibliothèque de copie (COPYBOOK). Le contenu de ce fichier sera littéralement inséré à l'endroit de l'instruction COPY, comme si son code faisait partie intégrante du programme principal. |
| libraryname | Ce paramitre permet d'indiquer le nom logique ou physique de la bibliothèque dans laquelle chercher le texte identifié par textname. |
| SUPPRESS | Ce paramètre permet d'indiquer qu'il faut supprimer les lignes de commentaires du fichier de copie lors de son insertion. Il est utile pour alléger le code compilé ou masquer certaines informations à l'étape de génération du listing du programme. Toutefois, cela n'affecte pas l'exécution, seulement la visibilité des lignes dans certains contextes (listing, journaux de bords de compilation...). |
| copyoperand | Ce paramètre permet d'indiquer l'identificateur à remplacer. |
| copyoperand+ | Ce paramètre permet d'indiquer le ou les nouveaux éléments à utiliser à la place. Cette substitution est utile pour adapter un COPYBOOK générique à un contexte particulier, par exemple en remplaçant un nom de variable ou de champ pour éviter les collisions de noms ou pour adapter des types. |
Description
Cette instruction permet d'insérer le contenu du fichier spécifié dans le programme spécifié.
Remarques
- L'instruction COPY joue un rôle essentiel dans la modularité et la réutilisabilité du code COBOL. Elle permet d'intégrer des blocs de code standardisés, appelés COPYBOOKS, dans différents programmes. Cela simplifie grandement la maintenance, car une modification dans un COPYBOOK peut être automatiquement répercutée dans tous les programmes l'utilisant.
- L'option REPLACING de l'instruction COPY apporte une grande flexibilité. Elle permet d'adapter un même fichier de copie à plusieurs situations en personnalisant certains identifiants à l'inclusion. Cette approche est particulièrement utile dans les projets complexes, car elle limite la duplication de fichiers tout en préservant des adaptations locales.
- Le paramètre SUPPRESS est parfois sous-utilisé, mais il permet de nettoyer l'affichage des listings de compilation. En supprimant les commentaires lors de l'inclusion du COPYBOOK, on obtient un résultat plus lisible, surtout dans les grands programmes où le volume de code généré peut être conséquent.
- Le paramètre libraryname, combiné à IN ou OF, facilite l'organisation des ressources partagées. Dans les grands systèmes, les COPYBOOKS sont souvent regroupés dans des bibliothèques logiques distinctes selon les modules applicatifs. Cette structure permet une gestion centralisée, sécurisée et cohérente du code source.
- Le nom textname doit correspondre exactement au nom du membre dans la bibliothèque, sans faute ni troncature, car COBOL est sensible à ces détails. Une erreur de frappe peut entraîner une erreur de compilation, ce qui rend crucial l'usage de conventions de nommage strictes dans les projets COBOL.
- Le mécanisme d'inclusion par COPY fonctionne avant la compilation, ce qui signifie que le contenu est copié littéralement dans le programme source. Il est donc important de s'assurer que le contenu du COPYBOOK est syntaxiquement cohérent avec le contexte dans lequel il est inséré (section, niveau, indentation...).
- Utiliser des COPYBOOKS dans des sections comme WORKING-STORAGE, LINKAGE ou PROCEDURE DIVISION permet une standardisation des définitions de données ou de traitements. Cette stratégie est particulièrement utile dans les systèmes bancaires ou assurantiels, où les structures de données sont massives et récurrentes.
- L'instruction COPY est aussi un bon outil pour favoriser le travail en équipe, chaque développeur pouvant se concentrer sur un composant spécifique encapsulé dans un COPYBOOK. Cela permet une meilleure répartition des responsabilités, tout en facilitant la validation et les tests des blocs réutilisables.
Dernière mise à jour : Jeudi, le 28 juillet 2011