Comment récupérer les variables d’environnement en COBOL ?

NicolasBrondinBernard

Auteur
@NicolasBrondinBernard

Même si COBOL est un langage ancien, il reste encore utilisé dans de nombreux systèmes critiques. Mais comment faire pour adapter son comportement selon l’environnement, par exemple, passer du mode développement au mode production ? La réponse passe par les variables d’environnement.

Article publié le 02/03/2026, dernière mise à jour le 02/03/2026

Les variables d’environnement, c’est quoi ?

Une variable d’environnement est une valeur stockée par le système d’exploitation et accessible par les programmes.

Elles servent à définir le contexte d’exécution d’une application :

  • nom du serveur
  • chemin vers une base de données
  • mode de fonctionnement (DEV / PROD)
  • etc...

En COBOL, on peut y accéder grâce à l’instruction ACCEPT.

Lire une variable d’environnement en COBOL

Voici un exemple simple pour récupérer la variable d’environnement APP_MODE :

       IDENTIFICATION DIVISION.
       PROGRAM-ID. EnvExample.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  APP-MODE       PIC X(10).

       PROCEDURE DIVISION.
           ACCEPT APP-MODE FROM ENVIRONMENT "APP_MODE"
           DISPLAY "Mode d'exécution : " APP-MODE
           STOP RUN.

  • ACCEPT permet de lire une entrée externe.
  • En précisant FROM ENVIRONMENT "APP_MODE", on demande à COBOL de lire la variable d’environnement correspondante.
  • La valeur est stockée dans la variable APP-MODE.

Exemple pratique

Imaginons que vous vouliez exécuter certaines instructions selon l’environnement :

       IF APP-MODE = "DEV"
           DISPLAY "Connexion à la base de test..."
       ELSE
           DISPLAY "Connexion à la base de production..."
       END-IF.

Mais avant d’exécuter votreprogramme, tu peux définir la variable selon le contexte :

Mode d'exécution : DEV
Connexion à la base de test...

Gérer les cas particuliers

Les valeurs numériques

Une chose à retenir, c’est qu’une variable d’environnement est toujours passée à un programme sous forme de string. Il est possible de la convertir automatiquement en COBOL, en la déclarant comme une valeur valeur numérique, comme ceci avec port qui serait égal à 3000 :

01 PORT PIC 9(4).
ACCEPT PORT FROM ENVIRONMENT "PORT"

Mais ce n’est pas conseillé.

Si votre votre variable contient par erreur une valeur qui ne peut pas être parsée, alors il y a de fortes chances que votre programme crash (en fonction de votre environnement).

Il vaut mieux lire une valeur alpha-numérique, pour ensuite vérifier et convertir, comme ceci :

01 PORT-STR PIC X(10).
01 PORT     PIC 9(4).

ACCEPT PORT-STR FROM ENVIRONMENT "PORT"

IF PORT-STR IS NUMERIC
    MOVE PORT-STR TO PORT
ELSE
    DISPLAY "PORT invalide"
END-IF

Les valeurs vides

Si une variable d’environnement est lue, mais quelle est vide (ou simplement non définie), alors votre programme ne recevras qu’un ensemble d’espaces équivalent à la longueur de votre variables.

Pour vérifier si votre variable est définie ou non, et lui assigner une valeur par défaut, il vous suffira de faire ceci :

ACCEPT APP-MODE FROM ENVIRONMENT "APP_MODE"
IF APP-MODE = SPACES
    MOVE "DEV" TO APP-MODE
DISPLAY "Mode d'exécution : " APP-MODE
STOP RUN.

La constante SPACES est une constante “figurative”, qui s’adapte au contexte, et elle correspond au nombre d’espaces nécessaires pour remplir votre variable.


Vous avez terminé l'article ?
Notre newsletter

Pas de spam. Uniquement du contenu gratuit, des news et toujours plus de ressources pour monter en compétences !

Rejoignez +1500 développeurs

Commentaires (0)

pour laisser un commentaire

Aucun commentaire pour l'instant