Description du COBOL généré à partir d'un Programme
Le COBOL est généré à partir des informations indiquées dans l'éditeur de design de l'instance et éventuellement complétées par des insertions de code spécifique. Pour vous aider à comprendre le COBOL généré et à décider des points d'insertion de votre code spécifique, cette page explique les variables présentes dans le COBOL et décrit les fonctions générées.
Le COBOL d'un Programme débute par l'IDENTIFICATION DIVISION du COBOL, générée à partir de la Définition du Programme.
Vient ensuite l'ENVIRONMENT DIVISION, générée à partir des appels de Structures de Données. Elle est adaptée à la variante du COBOL demandée pour le Programme.
La DATA DIVISION est aussi générée à partir des appels de Structures de Données. Sa FILE SECTION ne doit en aucun cas être modifiée, si ce n’est par la description des Structures de Données.
La WORKING-STORAGE SECTION et la PROCEDURE DIVISION sont décrites en détails dans cette page.
WORKING-STORAGE SECTION
La WORKING-STORAGE SECTION contient les variables et indices utilisés par le Programme. Ils sont générés en fonction des caractéristiques des Structures de Données et de l’appel de ces Structures dans le Programme.
En tête de la WORKING-STORAGE SECTION sont générées les description des fichiers en organisation W: Description de fichier en Working, ou en organisation L: Working avec placement ou D: DL/1, IDS I et II avec un code placement alphabétique.
- La constante BLANC si le Programme comprend un fichier d’utilisation M: Mouvement à contrôler ou N: Mouvement à ne pas contrôler.
- La variable IK, systématiquement générée.
Code | Signification |
---|---|
DATCE | Variable composée d’une zone CENTUR contenant la valeur du siècle, et d’une zone date (DATOR) non initialisée pour stocker la date du traitement sous la forme an-mois-jour (DATOA-DATOM-DATOJ). Les zones DAT6, DAT8, DAT8E, DAT6C et DAT8C servent au formatage de la date. |
DATSEP | Séparateur utilisé dans les dates (valeur par défaut : /). |
Code | Signification |
---|---|
RTDn | Rupture totale dernière au niveau n. Au cours de l’itération, le traitement des enregistrements ayant le même indicatif au niveau n est terminé sur tous les fichiers synchronisés en entrée. |
RTPn | Rupture totale première au niveau n. Au cours de l’itération, le traitement des enregistrements ayant le même indicatif au niveau n est commencé sur tous les fichiers synchronisés en entrée. |
dd-DEn | Rupture dernière sur le fichier dd au
niveau n. Le dernier des enregistrements ayant le même indicatif au niveau n a été trouvé pour le fichier dd. |
dd-PEn | Rupture première sur le fichier dd au
niveau n. Le premier des enregistrements ayant le même indicatif au niveau n a été trouvé pour le fichier dd. |
dd-CFn | Configuration du fichier dd au
niveau n. Au niveau n, l'enregistrement du fichier en entrée dd participe au traitement dans l’itération. |
dd-OCn | Occurrence sur le fichier dd au
niveau n. Au niveau n, l’enregistrement du fichier en entrée dd est traité. |
dd-FT | Fin de travail sur le fichier dd. Tous les enregistrements du fichier dd ont été traités. |
dd-FI | Fin de lecture sur le fichier dd. Tous les enregistrements du fichier dd ont été lus. |
Code | Signification |
---|---|
IddssM | Mémorisation du nombre d’enregistrements maximum prévu par l’utilisateur. |
IddssL | Mémorisation du nombre d’enregistrements effectivement stockés dans la table issue de la description de l’enregistrement ss du fichier dd. Ce nombre ne peut excéder IddssM. |
IddssR | Utilisé pour toute recherche sur la table issue
de la description de l’enregistrement ss du fichier dd. A la fin du chargement de la table, cet indice est initialisé à zéro si la table ne déborde pas, au nombre d’enregistrements lus si elle déborde. |
5-dd00-CPTENR | Compteur d'enregistrements du fichier dd. Il est incrémenté à chaque lecture ou écriture séquentielle. |
Code | Signification |
---|---|
EN-PRR | Mémorise, pour chaque Rubrique du fichier mouvement, la présence et l’état de
la Rubrique dans l’enregistrement. A chaque Rubrique élémentaire (corub)
différente de FILLER, et ne faisant pas partie des Rubriques facultatives, est
associée une position dans une table nommée PR-ss-corub (ss est le
Segment). Elle peut prendre les valeurs suivantes :
La dernière position de cette table, EN-EI, mémorise les erreurs
d’identification. Elle peut prendre les valeurs suivantes :
|
EN-PRE | Mémorise à un instant donné la présence et l’état d’une Rubrique. |
ER-PRR | Permet d’assurer les transferts entre EN-PRR et un fichier d’utilisation M : Mouvement à contrôler, N : Mouvement à ne pas contrôler ou E : Mouvement avec détection d'erreurs portant un vecteur erreur réduit. |
GR-PRR | Mémorise, pour chaque type d’enregistrement du fichier mouvement, la présence
et l’état de l’enregistrement dans un mouvement. A chaque structure d’enregistrement possible dans
le fichier mouvement est associée une position dans cette table nommée GR-PR(I01).
Elle peut prendre les valeurs suivantes :
La dernière position de cette table, GR-EG, mémorise toute erreur
détectée dans le mouvement. Elle peut prendre les valeurs suivantes :
|
GR-PRE | Mémorise à un instant donné la présence et l’état d’un enregistrement. |
GM-ER | Mémorise s’il y a eu ou non une erreur sur un ensemble de mouvements destinés à mettre à jour un enregistrement du fichier permanent. |
UT-ERUT | Mémorise les erreurs gérées par l’utilisateur. |
Code | Signification |
---|---|
CAT-TAB | Table des catégories qui mémorise les catégories à éditer dans une itération. |
ST-TA | Table banalisée des triplets (numéro de structure, numéro de libellé, saut) de la catégorie à éditer. |
e-LIB | Table des libellés relatifs à l’État e (suffixe dans le Programme). |
ST-SLS | Mémorise le triplet (numéro de structure, numéro de libellé, saut) en cours d’édition. |
CATX | Mémorise la catégorie en cours d’édition. |
5-dd00-eCP | Compteur de page relatif à l’État e (suffixe dans le Programme) du fichier dd. |
5-dd00-eCL | Compteur de lignes de l’État e (suffixe dans le Programme) du fichier dd. |
5-dd00-eCLM | Compteur mémorisant le nombre de lignes maximum autorisé dans la page. |
e-cc-NL | Nombre de lignes requis pour éditer la catégorie cc de l’État e (suffixe dans le Programme) |
Jddecc | Indice associé à la catégorie itérative cc de l’État
e
(suffixe dans le Programme), supporté par le fichier dd. Il contient, au niveau du remplissage des structures, le rang de la catégorie cc en cours d’édition. |
Code | Signification |
---|---|
Tess-corub(x) | Totalisateur au niveau x associé à la Rubrique corub de la structure ss de l’État e (suffixe dans le Programme). |
Gess-corub | Totalisateur général associé à la Rubrique corub de la structure ss de l'Etat e (suffixe dans le Programme). |
PROCEDURE DIVISION
La PROCEDURE DIVISION est générée à partir des appels de Structures de Données ou Segments, des traitements spécifiés et des appels de Macros.
Code fonction | Objectif de la fonction |
---|---|
F01 | Initialisations. Cette fonction est toujours générée. Elle contient une sous-fonction F01dd pour l'ouverture et la première lecture du fichier dd si le fichier est à rupture ou chargement en table. |
F05 | Lecture fichiers sans rupture. Cette fonction comprend une sous-fonction F05dd par fichier dd en entrée défini sans rupture et non chargé en table. |
F10 | Lecture fichiers avec rupture. Cette fonction comprend une sous-fonction F10dd par fichier dd en entrée à rupture. |
F20 | Fin de traitement. Cette fonction comprend une sous-fonction F20dd pour la fermeture de chaque fichier dd à rupture ou chargement en table. Elle contient aussi une sous-fonction 2099 qui génère l'ordre STOP RUN si le Programme ne comporte pas de fichier de tri. |
F22 | Calcul des ruptures par fichier. Cette fonction est générée si un niveau de rupture est indiqué pour un fichier principal, consulté ou mouvement. |
F24 | Calcul des configurations. Cette fonction est générée si un niveau de synchronisation est indiqué pour un fichier en entrée qui n’est pas chargé en table ou si un fichier en entrée ou en entrée-sortie est un fichier principal. |
F26 | Calcul des ruptures totales. Cette fonction est générée si un niveau de rupture et un niveau de synchronisation sont indiqués pour un fichier principal, consulté ou mouvement. |
F30 | Calcul des variables de contrôle. Cette fonction est générée si un fichier en entrée est un fichier mouvement. |
F33 | Contrôle d'identification. Cette fonction est générée si un code structure ou un code mouvement est indiqué pour le fichier mouvement du Programme. Cette fonction comprend une sous-fonction F33AA pour le contrôle du code structure et une sous-fonction F33BB pour le contrôle du code mouvement. |
F36 | Contrôle des enregistrements en double. Cette fonction est générée si le Programme comporte un fichier d'utilisation M : Mouvement à contrôler pour lequel un niveau de rupture a été indiqué. Le code structure doit faire partie de l’argument du fichier et une rupture doit être définie pour ce niveau, ou alors le fichier ne doit comporter qu’un seul type d’enregistrement. |
F39 | Détermination de la présence des Rubriques. Cette fonction est générée si le Programme comporte un fichier mouvement (utilisation M : Mouvement à contrôler ou N : Mouvement à ne pas contrôler) en entrée. |
F42 | Contrôle de structure de l'enregistrement. Cette fonction est générée si un fichier d'utilisation M : Mouvement à contrôler est utilisé dans le Programme. Cette fonction comprend une sous-fonction F4210 pour le contrôle de la présence ou de l’absence des Rubriques de la partie commune, et une sous-fonction F4220 pour le contrôle de la présence ou de l’absence des Rubriques de la partie spécifique. |
F45 | Contrôle du contenu des Rubriques. Cette fonction est générée si un fichier d'utilisation M : Mouvement à contrôler est utilisé dans le Programme. Cette fonction comprend une sous-fonction F4500 pour le contrôle du contenu des Rubriques de l'enregistrement dd00, et une sous-fonction F45nn pour le contrôle du contenu des Rubriques de l'enregistrement ddnn. |
F51 | Contrôle de présence des enregistrements. Cette fonction est générée si un fichier d'utilisation M : Mouvement à contrôler est utilisé dans le Programme et si ce fichier comporte plusieurs types d'enregistrements. Cette fonction comprend une sous-fonction F5110 pour le contrôle de la présence à tort des enregistrements, et une sous-fonction F5120 pour le contrôle de l'absence à tort des enregistrements. |
F70 | Contrôle de correspondance. Cette fonction est générée si le Programme utilise un fichier d'utilisation M : Mouvement à contrôler ou N : Mouvement à ne pas contrôler dont les Rubriques mettent à jour un ou plusieurs fichiers principaux. Cette fonction comprend une sous-fonction F70dd par fichier dd à mettre à jour. |
F73 | Mise à jour. Cette fonction est générée si un fichier mouvement met à jour un fichier principal. |
F76 | Mémorisation des erreurs et reprise. Cette fonction est générée si un fichier mouvement est appelé dans le Programme. Elle mémorise les erreurs détectées dans les contrôles et reprend l'état initial de chaque enregistrement des fichiers principaux en cas d'erreur sur un mouvement. Cette fonction comprend une sous-fonction F76dd par fichier dd à mettre à jour. Ces sous-fonctions F76dd sont exécutées lorsque les fichiers sont en ruptures totales dernières. |
F8E | Edition de l’état E. Cette fonction est générée lorsqu’un Etat est appelé dans un Programme. Une fonction F8E est générée par Etat à éditer. Chaque
fonction est découpée en deux sous-ensembles :
Chaque fonction comprend les éléments suivants :
|
F90 | Ecritures. Cette fonction est générée si le programme utilise en sortie un fichier séquentiel d’utilisation D : Fichier en sortie, S : Sélectionné, R : Résultat ou E: Mouvement avec détection d'erreurs. Cette fonction regroupe les fonctions d’écriture sur les différents fichiers en sortie. Elle n’est pas conditionnée. Elle comprend une sous-fonction F90dd (dd : code fichier) par fichier en sortie. |
F95 | Fonction appelée par PERFORM. Cette fonction est générée à partir des fonctions 05 ou 10, si une Structure de Données a une organisation W: Description de fichier en Working dans l'appel des Structures de Données. La sous-fonction F9520 est la sous-fonction par défaut de transformation des dates. Le numéro de la sous-fonction peut être modifié avec l'option DATPRO dans le Programme. |