Comment récupérer les variables d’environnement en COBOL ?
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.
ACCEPTpermet 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.
Pas de spam. Uniquement du contenu gratuit, des news et toujours plus de ressources pour monter en compétences !
Rejoignez +1500 développeurs
Aucun commentaire pour l'instant