Comprendre la DATA DIVISION

La DATA DIVISION est le cœur de tout programme COBOL. C’est ici que toutes les données sont définies, qu’elles proviennent de fichiers externes ou qu’elles soient utilisées uniquement dans la mémoire du programme. Si un programme COBOL manipule des noms, des montants, des dates ou des lignes de fichiers, tout passe par cette division.

1. Rôle de la DATA DIVISION

La DATA DIVISION est l’endroit où un programme COBOL stocke, récupère et prépare les données nécessaires à son exécution. Elle ne contient pas de logique ni d’instructions, uniquement des déclarations de structures de données.

2. Structure générale

Elle se compose de plusieurs sections, dont les deux plus fréquentes sont :

DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
Section Utilisation
FILE SECTION Décrit les fichiers utilisés dans le programme et la structure de leurs enregistrements.
WORKING-STORAGE SECTION Contient les variables temporaires, les drapeaux de contrôle, les compteurs et tout ce qui est utilisé pendant l'exécution du programme.

3. La FILE SECTION en pratique

Chaque fichier référencé dans la division ENVIRONMENT est défini ici. On décrit comment chaque ligne ou enregistrement de ce fichier est structurée.
FD ClientFile.
01 ClientLine PIC X(100).

Ici, le fichier logique ClientFile est composé d’enregistrements de 100 caractères. Chaque ligne lue ou écrite correspond à la variable ClientLine.

4. La WORKING-STORAGE SECTION

Cette section agit comme un espace de travail temporaire. Elle permet de stocker des données internes, non liées directement à un fichier.
01 TotalFactures   PIC 9(5) VALUE ZEROS.
01 NomClient       PIC A(30).
01 TraitementFini  PIC X VALUE "N".
   88 Fini         VALUE "O".
   88 EnCours      VALUE "N".

Ce bloc déclare un total, un nom, et un indicateur logique à l’aide d’un niveau 88. Les niveaux 88 permettent d’utiliser des noms symboliques pour des états (par exemple : IF Fini).

5. Pourquoi la DATA DIVISION est essentielle

  • 📥 Elle stocke toutes les données lues ou écrites.
  • 🧮 Elle contient toutes les variables nécessaires aux calculs.
  • 🔄 Elle permet le suivi de l’état du programme via des indicateurs ou compteurs.
  • 🗂 Elle organise les données de manière structurée et typée.

6. Métaphore simple : le grenier du programme

Si l’on compare un programme COBOL à une maison, la DATA DIVISION est un grenier soigneusement étiqueté. Chaque boîte représente une donnée : certaines viennent de l’extérieur (fichiers), d’autres sont posées là par le programme pour s’y retrouver pendant le travail.

7. Bonnes pratiques

  • 🧾 Utilisez des noms de variables clairs et lisibles.
  • 🧠 Groupez vos données par fonction pour améliorer la lisibilité.
  • 🛠 Privilégiez l’utilisation de PIC adaptés à la taille et au type de données.
  • 🎯 Utilisez les niveaux 88 pour gérer les états logiques.

8. Exemple complet

DATA DIVISION.
FILE SECTION.
FD CommandeFile.
01 LigneCommande PIC X(80).

WORKING-STORAGE SECTION.
01 NomProduit       PIC A(20).
01 Quantite         PIC 9(4).
01 EstTermine       PIC X VALUE "N".
   88 Terminer      VALUE "O".
   88 EnCours       VALUE "N".

Ce bloc montre comment définir un fichier et des variables associées à une logique de traitement dans le programme.

9. À retenir

  • 📌 La DATA DIVISION est le réservoir de données du programme COBOL.
  • 📚 Elle se divise en FILE SECTION (fichiers) et WORKING-STORAGE SECTION (mémoire de travail).
  • 🛠 Elle ne contient aucune logique : uniquement des déclarations.
  • 🎯 La qualité des structures définies ici conditionne la clarté et la stabilité du programme.