Structure du COBOL d'un Serveur généré

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.

La génération est possible depuis un Serveur de type Composant Applicatif, Moniteur Serveur, Moniteur de Communication ou Serveur de Libellés d'erreur.

Le COBOL généré est adapté au matériel et au moniteur de temps réel précisés dans la Définition du Dialogue Serveur ou du Serveur.

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 utilisées par le Serveur. Elles sont générées en fonction des caractéristiques des éléments appelés dans le Serveur.

Les tableaux suivants donnent la signification des principales variables de la WORKING-STORAGE SECTION :
Tableau 1. Variables de contrôle et indicateurs
Code Signification
IK Code retour lors d'un accès à un Segment ou lors de l'appel d'un Composant Applicatif :
  • 0 : Pas d'erreur
  • 1 : Erreur
CATM Code mouvement :
  • C : Création
  • M : Modification
  • A : Annulation
  • X : Mise à jour implicite
A-CATM Buffer de description. Ce buffer contient les codes action concernant les données non répétées ainsi que les données répétées de la Vue Logique.
A-CATM-CA Code action portant sur les données non répétées. Il est systématiquement généré.
A-CATM-CR OCCURS N Code action portant sur les données répétées. N représente le nombre maximum de répétitions de l'ensemble des Vues Logiques de ce Serveur. Il est généré si une des Vues Logiques du Composant Applicatif contient des données répétées.
ICATR Indice de la catégorie en cours de traitement (données répétées de la Vue Logique)
ICATRC Nombre de répétitions demandées lors d'un appel de Composant Applicatif
IRR Nombre de répétitions demandées par le Client
OPERB Indique si la demande de sélection est une liste lors d'un appel de Composant Applicatif.
OPERS Code opération
OPERT Zone de gestion des services de contrôle, mise à jour et sélection
OPERV Indicateur de traitement d'une Vue Logique :
  • V : Vue Logique reconnue par le Composant Applicatif
  • blanc : Vue Logique non traitée par le Composant Applicatif
OPER2 Code opération pour l'appel de Composant Applicatif de deuxième niveau
CH-vulo vulo représente la Vue Logique. Cette zone contient une table utilisée pour les contrôles de la Vue Logique. Elle est générée si l'option CHECKSER=YES a été indiquée dans l'onglet Complément du Dialogue Serveur ou du Serveur. Cette table comprend un poste par Rubrique appelée dans la Vue Logique.
Les valeurs utilisées (à renseigner par l'utilisateur dans le Client) sont les suivantes :
  • N : Pas de contrôle pour cette Rubrique (valeur par défaut),
  • P : Rubrique absente,
  • blanc : Toutes les Rubriques sont contrôlées.

Cette zone sert aussi à indiquer si une donnée de la Vue Logique a une valeur nulle ou non (au sens SQL), donc si elle est présente. Le Client peut positionner des valeurs nulles pour un service de mise à jour par exemple et le Composant Applicatif peut retourner des valeurs nulles en sélection si les données correspondantes de la table sont nulles.

L-CURS-EXTNAM Conditionnement de la fermeture du curseur en fin de service de sélection en cas d'utilisation d'une méthode d'extraction
Tableau 2. Description des Segments
Code Signification
02 vulo-C Données transférées dans le sens Client vers Serveur et dans les deux sens. vulo est la Vue Logique.
02 vulo-S Données transférées dans le sens Serveur vers Client. Lorsque la Vue Logique contient des données répétées, un niveau 01 est aussi généré:
01 RE-vulo-corub Données répétées (corub est la Rubrique groupe des données répétées)
10 1-vulo-corub Identifiant de la structure répétée de la Vue Logique. Cette Rubrique n'est déclarée qu'une fois dans la Vue Logique.
Tableau 3. Variables d'erreur
Code Signification
EN-PRE Erreur sur Rubrique
IED Nombre maximum d'erreurs sur les données de la Vue Logique que le Composant Applicatif peut détecter avant de retourner au Client. Ce nombre est déterminé par l'option DATAERR.
IER Nombre maximum d'erreurs sur accès bases de données que le Composant Applicatif peut détecter avant de retourner au Client. Ce nombre est déterminé par l'option ACCESERR.
K50L Indice de travail du nombre d'erreurs d'accès Segment
K50D Indice de travail du nombre d'erreurs sur Rubrique
Les erreurs sur Rubriques sont stockées dans des variables préfixées par EE-vulo. Ces variables sont générées pour chaque Vue Logique vulo appelée dans le Composant Applicatif. Cette table permet de stocker les erreurs détectées sur la Vue Logique grâce à l'opérateur ERR. Le nombre de postes de la table dépend de l'option DATAERR. Chaque poste contient les informations nécessaires à la mise en forme de la clé pour accéder au fichier libellés d'erreur.
Tableau 4. Variables d'erreur sur Rubriques
Code Signification
EE-vulo-LIBRA Bibliothèque
EE-vulo-SERVER Composant Applicatif
EE-vulo-vulo Vue Logique
EE-vulo-DATCOD Rubrique
EE-vulo-DATERR Code erreur
EE-vulo-DATTYP Type d'erreur :
  • S : Erreur standard
  • U : Erreur utilisateur
EE-vulo-ICATR Numéro de la ligne de répétition sur laquelle l'erreur a été détectée
Les erreurs sur Segments sont stockées dans des variables préfixées par V-ERR. V-ERR est systématiquement générée. Elle permet le stockage des erreurs détectées lors de l'accès aux bases de données. La valeur OCCURS N dépend de l'option ACCESERR.
Tableau 5. Variables d'erreur sur Segments
Code Signification
V-ERR-SEGCOD Segment en erreur
V-ERR-SEGERR Code de l'erreur
V-ERR-SEGTYP Type de l'erreur
V-ERR-ICATR Rang de l’occurrence erronée pour un traitement multi-occurrence
V-ERR-LIBRA Bibliothèque
V-ERR-SERVER Composant Applicatif
Le passage de la LINKAGE SECTION, c'est-à-dire la zone de communication, s’effectue lors de l’appel dans le Client (ou dans le Moniteur Client selon l’architecture choisie). Il s’effectue en trois phases :
  • Alimentation de la zone de communication,
  • Appel du Composant Applicatif avec passage de la zone de communication,
  • Récupération du message au retour du Composant Applicatif.
La LINKAGE SECTION contient deux types de zones :
  • Certaines ne doivent en aucun cas être modifiées (Tableau 6)
  • D'autres peuvent éventuellement être modifiées, sous votre seule responsabilité (Tableau 7). Ces zones étant alimentées en standard, il est recommandé d'utiliser les zones intermédiaires décrites en WORKING-STORAGE SECTION si vous voulez les modifier. Vous ne devez en aucun cas ajouter de nouvelles valeurs ou modifier les valeurs existantes de ces zones.

PROCEDURE DIVISION

Dans ce tableau, les étiquettes de fonction sont précédées par leur niveau COBOL.
Tableau 8. Structure de la PROCEDURE DIVISION d'un Serveur
Code fonction Objectif de la fonction
05 FSERVER Traitements début de Serveur
10 FSERVER-STRVIEW Contrôle structure et longueur des buffers de la zone de communication
05 FSQL Déclaration SQL
10 FSQL-WHENEVER Clause WHENEVER
10 FSQL-CURSR-segt Clause DECLARE CURSOR
05 Fvulo Traitements de la Vue Logique vulo
10 Fvulo-BEGV Initialisations des traitements de la Vue Logique
10 Fvulo-CHUP Traitements de contrôle et mise à jour

Ces traitements se composent de niveaux 15 Fvulo-CHUP-CATX pour les traitements de la catégorie X.

La catégorie est A (avant répétitive), R (répétitive) ou Z (après répétitive).

Les traitements suivants sont exécutés :
  • 25 Fvulo-CHUP-CATX-SRVO-INIT pour les traitements d'initialisation,
  • 25 Fvulo-CHUP-CATX-SRVO-CHCK pour les traitements logiques de contrôle,
  • 25 Fvulo-CHUP-CATX-SRVO-TRAN pour les traitements d'alimentations avant mises à jour,
  • 25 Fvulo-CHUP-CATX-SRVO-UPDT pour les traitements logiques de mises à jour,
  • 25 Fvulo-CHUP-CATX-SRVO-DONE pour la fin de traitement du service.
10 Fvulo-LOCK Verrouillage
10 Fvulo-UNLK Déverrouillage
10 Fvulo-SELC Traitements de sélection

Ces traitements se composent de niveaux 15 Fvulo-SELC-CATX pour les traitements de la catégorie X.

La catégorie est A (avant répétitive), R (répétitive) ou Z (après répétitive).

Les traitements suivants sont exécutés :
  • 25 Fvulo-SELC-CATX-SRVO-INIT pour les traitements d'initialisation,
  • 25 Fvulo-SELC-CATX-SRVO-CHCK pour les traitements logiques de contrôle,
  • 25 Fvulo-SELC-CATX-SRVO-TRAN pour les traitements d'alimentations avant mises à jour,
  • 25 Fvulo-SELC-CATX-SRVO-UPDT pour les traitements logiques de mises à jour,
  • 25 Fvulo-SELC-CATX-SRVO-DONE pour la fin de traitement du service.
10 Fvulo-USER Traitements utilisateur
10 Fvulo-ERRV Traitements des erreurs sur la Vue Logique vulo
10 Fvulo-ENDV Traitements de fin de la Vue Logique vulo
05 FSERVER-END Traitements de fin de Serveur. Retour au Client.
Tableau 9. Traitements élémentaires exécutés par PERFORM à partir du corps du programme
Code fonction Objectif de la fonction
10 Fvulo-TRDT Transfert des données de la Vue Logique vers les données des Segments pour les accès physiques

Ces traitements se composent de niveaux 15 Fvulo-TRDT-CATX pour les traitements de la catégorie X.

La catégorie est A (avant répétitive), R (répétitive) ou Z (après répétitive).

10 Fvulo-CHKD Contrôle des données de la Vue Logique

Ces traitements se composent de niveaux 15 Fvulo-CHKD-CATX pour les traitements de la catégorie X.

La catégorie est A (avant répétitive), R (répétitive) ou Z (après répétitive).

10 Fvulo-TRVW Transfert des données des Segments pour les accès physiques vers les données de la Vue Logique

Ces traitements se composent de niveaux 15 Fvulo-TRVW-CATX pour les traitements de la catégorie X.

La catégorie est A (avant répétitive), R (répétitive) ou Z (après répétitive).

10 Fsegt-CHCK Traitements des accès logiques de contrôle du Segment segt

Ces traitements se composent de niveaux 15 Fsegt-CHCK-CATX pour les traitements de la catégorie X.

La catégorie est A (avant répétitive), R (répétitive) ou Z (après répétitive).

Les traitements suivants sont exécutés :
  • 25 Fsegt-CHCK-CATX-ALIM pour les traitements d'alimentation des clés,
  • 25 Fsegt-CHCR-CATX-CALL pour les traitements d'appel des accès physiques,
  • 25 Fsegt-CHCK-CATX-ERRS pour les traitements des erreurs sur les accès physiques.
10 Fsegt-UPDT Traitements des accès logiques de mise à jour du Segment segt

Ces traitements se composent de niveaux 15 Fsegt-UPDT-CATX pour les traitements de la catégorie X.

La catégorie est A (avant répétitive), R (répétitive) ou Z (après répétitive).

Les traitements suivants sont exécutés :
  • 25 Fsegt-UPDT-CATX-ALIM pour les traitements d'alimentation des clés,
  • 25 Fsegt-UPDT-CATX-CALL pour les traitements d'appel des accès physiques,
  • 25 Fsegt-UPDT-CATX-ERRS pour les traitements des erreurs sur les accès physiques.
10 Fsegt-SLCT Traitements des accès logiques de sélection du Segment segt

Ces traitements se composent de niveaux 15 Fsegt-SLCT-CATX pour les traitements de la catégorie X.

La catégorie est A (avant répétitive), R (répétitive) ou Z (après répétitive).

Les traitements suivants sont exécutés :
  • 25 Fsegt-SLCT-CATX-ALIM pour les traitements d'alimentation des clés,
  • 25 Fsegt-SLCT-CATX-CALL pour les traitements d'appel des accès physiques,
  • 25 Fsegt-SLCT-CATX-ERRS pour les traitements des erreurs sur les accès physiques.
F80 Accès physiques exécutés par PERFORM à partir des accès logiques et générés dans la fonction 80. Cette fonction contient les traitements suivants :
  • 10 F80-segt-R : Lecture pour contrôle,
  • 10 F80-segt-RA : Lecture pour sélection,
  • 10 F80-segt-RU : Lecture pour contrôle avant mise à jour,
  • 10 F80-segt-P : Lecture premier enregistrement,
  • 10 F80-segt-RN : Lecture enregistrement suivant,
  • 10 F80-segt-W : Création (WRITE),
  • 10 F80-segt-RW : Modification (REWRITE),
  • 10 F80-segt-D : Suppression (DELETE),
  • 10 F80-segt-UN : Déblocage enregistrement lu en RU.
F81 Traitements complémentaires exécutés par PERFORM et générés dans la fonction 81. Cette fonction contient les traitements suivants :
  • F81CA : Calcul longueur réelle de la zone de communication,
  • F81ER : Traitement erreur irrécupérable,
  • F81FI : Fermeture,
  • F81EC : Positionnement des traitements à effectuer en cas d'erreur (CICS),
  • F81MS : Appel routine TUXEDO pour le traitement des erreurs,
  • F81RE : Retour au Client,
  • F8120 : Contrôle de date.

La fonction F81 comprend également la récupération des erreurs. Les sous-fonctions correspondantes varient selon la structure de stockage utilisée


Vos commentaires