Définition d'une ligne de -CD (Structure de Données)

Pour afficher le contenu de cette section, vous devez sélectionner une ligne -CD, c'est-à-dire le premier niveau de l'appel d'une Structure de Données dans le tableau. Cette section vous permet d'indiquer le code généré de la Structure de Données, son nom externe, son emplacement COBOL, ainsi que des caractéristiques physiques. Le bouton Plus d'infos vous permet d'accéder à une fenêtre dont le contenu complète les informations physiques déjà saisies ici.

Code généré
Ce code établit la séquence de traitement de la Structure de Données ou de l'Etat. dans le programme.

Le premier caractère doit être alphabétique mais le second peut être numérique ou alphabétique.

Lorsqu'une Structure de Données ou un Etat n'est utilisé qu'une fois dans un programme, il est conseillé de prendre comme code généré le nom de l'instance (choisi lors de la création de l'instance). Cependant, si la même instance est appelée plusieurs fois dans un programme, vous pouvez différencier ces appels.

Vous pouvez paramétrer le code de l'instance dans une Macro avec la valeur $n.

Nom externe
Ce nom est facultatif. La longueur maximum de saisie est de 6 caractères. Son contenu varie selon le type de Structure de Données et l'organisation.

Pour l'organisation Y: Pacbench C/S, cette zone doit contenir le code de la clause COBOL COPY qui représente la zone de communication du Composant Applicatif Pacbench C/S accédant à la Vue Logique.

Pour les organisations SQL, cette zone doit contenir le code du Bloc SQL.

Pour toutes les autres Structures de Données, le contenu de cette zone dépend de la variante indiquée dans l'onglet Définition du Programme.

Tableau 1. Valeurs du nom externe
Variante Contenu de la zone
1: IBM DOS/VSE Vous pouvez indiquer trois types d'information :
  • SYSnnn pour le nom symbolique d'unité.
  • XXXnnn pour l'unité symbolique SYSnnn et le nom externe du fichier XXX.
  • XXXXXX pour le nom externe. L'unité symbolique est générée avec SYSnnn, nnn étant incrémenté de 1 pour chaque fichier en partant de SYS010.
X: IBM MVS/ESA OS/390 La clause ASSIGN (pour les fichiers séquentiels, organisation S: séquentiel) de nom externe SYSnnn est générée sous forme SYSnnn-UT-....-S-SYSnnn.

Pour OS/390 : DDNAME

4: BULL GCOS7 INTERNAL-FILE-NAME
5: BULL GCOS8 File-code (2 caractères)
F: TANDEM Nom externe
I: DEC/VAX VMS Nom externe
Emplacement COBOL
Cette zone ne concerne que la description principale de la Structure de Données (DDSS) et non les descriptions précédées d'un radical (1-DDSS ou 2-DDSS).

Elle permet d'obtenir une description de Structure de Données dans une zone particulière (zone de communication avec les Gestionnaires de Bases de Données, LINKAGE SECTION) ou en tête de la WORKING-STORAGE SECTION.

Cette zone est réservée aux Structures de Données en organisation L: Working avec placement ou W: Description de fichier en Working.

Pour effectuer une description de Structure de Données en WORKING-STORAGE SECTION, il est préférable de l'indiquer directement dans le code COBOL avec un micro-pattern.

Tableau 2. Valeurs de l'emplacement COBOL
Valeur Signification
00 La description de la Structure de Données est insérée après toutes les lignes de travail (valeur par défaut).
Caractères alphabétiques La description de la Structure de Données est insérée après toutes les lignes de travail dont le numéro de ligne à 5 positions commence par cette valeur.

Les lignes de travail et la description se trouvent, dans le programme généré, en tête de WORKING-STORAGE SECTION, avant les descriptions des Structures de Données d'organisation W: Description de fichier en Working et dont le code généré est supérieur à cette valeur.

Remarque : Ne choisissez pas un emplacement COBOL identique au code généré d'une Structure de Données d'organisation W: Description de fichier en Working.
Caractères alphanumériques La description de la Structure de Données est insérée après toutes les lignes de travail dont le numéro de ligne à 5 positions commence par cette valeur.

Les lignes de travail et la description se trouvent, dans le programme généré, en fin de WORKING-STORAGE SECTION parmi les zones-utilisateur.

Remarque : Pour ORACLE, vous devez utiliser des valeurs numériques pour que la DECLARE SECTION soit générée correctement (avec les zones données et indicateurs).

Définition de l'organisation

Organisation
Sélectionnez une valeur dans la liste déroulante.

Vous pouvez indiquer si la Structure de Données doit être générée dans la WORKING-STORAGE SECTION, ou sous la forme de description d'une Table Pactables.

Vous pouvez aussi utiliser cette zone pour indiquer des descriptions base de données lorsque le module Description Bases de Données n'est pas utilisé. Les valeurs sont prises en compte par les Programmes de l'application.

Tableau 3. Valeurs possibles pour l'organisation
Valeur Commentaire
S: Séquentiel Cette valeur est la seule autorisée pour un Etat, un fichier Séquentiel ou de tri.
V: VSAM, UFAS Cette valeur est l'une des deux valeurs possibles (avec I: Indexé) pour une Structure de Données de type séquentiel indexé.

Cette valeur fait générer la clause FILE STATUS et la zone correspondante, à condition que celle-ci soit déclarée dans la zone Zone complémentaire de la section Définition d'une ligne de -CD de l'onglet Lignes -CD (la fenêtre qui s'ouvre quand vous appuyez sur Plus d'infos).

I: Indexé Cette valeur est l'une des deux valeurs possibles (avec V: VSAM, UFAS) pour une Structure de Données de type séquentiel indexé.
Pour un fichier ISP de code LE, les trois zones suivantes seront générées en WORKING-STORAGE SECTION :
  • LE-FICHIER
  • LE-DATA
  • INVKEY
La VALUE de LE-DATA sera le nom externe qui devra être le FILE CODE de la ligne $ DATA précédant, dans le flot des lignes contrôle d'exécution, les lignes ISP donnant les caractéristiques physiques du fichier.
G: Description de table Cette valeur provoque la génération de la zone de communication avec le module Pactables.
L: Working avec placement Les descriptions de fichiers sont générées dans la WORKING-STORAGE SECTION, à l'emplacement que vous indiquez dans la zone Emplacement COBOL.
W: Description de fichier en Working Les descriptions de fichiers sont générées dans la WORKING-STORAGE SECTION, avant la constante DEBUT-WSS.

Une Structure de Données ainsi décrite sera utilisée comme zone de travail ou traitée à travers une fonction d'un système de gestion généralisé (bases de données par exemple).

Y: Pacbench C/S Cette valeur provoque l'appel de la clause COPY correspondant à la zone de communication entre le client et le serveur (Composants Applicatifs uniquement).
X: Commentaire Cette valeur représente une Structure de Données mentionnée à titre de commentaire. Elle ne donne lieu à aucune génération.
2: Segments DB2 ou VAX/SQL Cette valeur provoque la génération et description d'un Segment DB2 ou VAX/SQL. Seuls les accès physiques ne sont pas générés. La structure des indicateurs variables correspondant aux colonnes de la table DB2 ou VAX/SQL est toujours générée.
Q: DB2 ou ALLBASE/SQL (IBM®) Description de Bases de Données SQL/DS, DB2/2 ou DB2/6000.

(HP 3000) Description de Bases de Données ALLBASE/SQL

(MICRO FOCUS) Description de Bases de Données DB2/2 ou DB2/6000.

D: DL/1, IDS I et II Cette valeur est réservé à la description des Segments ou records de différentes bases de données DL/1 et IDS II, (suivant la variante du Programme) dans la génération de DBD, SYSGEN, schémas ou Programmes d'application (suivant la nature du Programme).
B: IDMS IDMS
A: ADABAS ADABAS
T: Fichiers TOTAL Fichiers TOTAL
O: ORACLE (< V6) ORACLE (< V6)
C: INTEREL RDBC ou RFM INTEREL RDBC ou RFM
R: RDMS RDMS
4: DB2/400 DB2/400
M: DATACOM DB DATACOM DB
N: NONSTOP SQL NONSTOP SQL
P: ORACLE V6 et V7 ORACLE V6 et V7
9: INFORMIX, SYBASE, INGRES/SQL, ou SQL SERVER INFORMIX, SYBASE, INGRES/SQL, ou SQL SERVER
Z: Structures de Données pour SOCRATE/CLIO Structures de Données pour SOCRATE/CLIO
F: FORMAL pour SOCRATE/CLIO FORMAL pour SOCRATE/CLIO
Mode d'accès
Vous indiquez la façon dont la Structure de Données est accédée par le Programme.
Tableau 4. Valeurs du mode d'accès
Valeur Commentaire
S: Séquentiel Accès séquentiel.
R: Direct / Aléatoire Fichiers en entrée avec accès aléatoire, la fonction LECTURE n'est pas générée automatiquement.
D: Dynamique Réservé aux fichiers VSAM.
Mode de blocage
Cette zone génère la clause RECORDING MODE IS, qui indique la nature des enregistrements logiques du fichier.
Tableau 5. Valeurs du mode de blocage
Valeur Commentaire
F: Fixe Lors de la génération, les longueurs des différents enregistrements seront alignées sur la longueur du plus grand.
V: Variable Pas de commentaire.
U: Non défini Pas de commentaire.
S: Spanned Cette valeur est réservée aux variantes IBM MVS et DOS.
Mode entrée-sortie
Sélectionnez une valeur dans la liste.
Tableau 6. Valeurs du mode entrée-sortie
Valeur Commentaire
I: Entrée Sélectionnable avec les utilisations suivantes : C: Consultation, T: Table stockée en mémoire, X: Table partiellement stockée en mémoire, M: Mouvement à contrôler, N: Mouvement à ne pas contrôler et P: Principal.
O: Sortie Sélectionnable avec les utilisations suivantes : D: Fichier en sortie, S: Sélectionné, R: Résultat, E: Mouvement avec détection d'erreurs, I: Impression directe et J: Impression indirecte.
E: Sortie avec la clause OPEN EXTEND Sélectionnable avec les variantes suivantes : 4: BULL GCOS7, 5: BULL GCOS8, 0: IBM MVS/ESA OS/390, U: UNYSIS 2200 Series, F: TANDEM, I: DEC/VAX VMS, K: ICL 2900.
R: Entrée-Sortie Fichiers en accès direct seulement.
T: Tri En entrée ou sortie suivant l'utilisation.
Type d'unité
La codification de cette zone est importante dans les variantes de COBOL où les clauses ASSIGN, les niveaux FD ou les ordres WRITE dépendent du type d'unité choisi.

Définition de l'utilisation

Niveau de rupture
Pour les fichiers triés, en accès séquentiel, vous devez indiquer le nombre de Rubriques (élémentaires ou groupes) sur lesquelles un traitement de contrôle des ruptures sera effectué pour la Structure de Données.

L'argument (ou indicatif) d'une Structure de Données se compose, au niveau d'un Programme, de 9 Rubriques au maximum. Ces 9 Rubriques définissent 9 niveaux de rupture de séquence au maximum. Le niveau indiqué est le niveau mineur sur lequel on désire déceler ces ruptures. L'option par défaut est O. Ces Rubriques sont indiquées dans la zone Argument de tri.

Les ruptures sur les niveaux majeurs seront automatiquement décelées. Le tout sera disponible sous forme de deux jeux de variables :
  • dd-PEn pour le premier Segment sur la Structure de Données dd au niveau n (valeur 1 = oui, 0 = non).
  • dd-DEn pour le dernier Segment sur la Structure de Données dd au niveau n (valeur 1 = oui, 0 = non).
Lorsque la Structure de Données est synchronisée avec d'autres, les ruptures sont automatiquement calculées sur l'ensemble des Structures de Données et disponibles sous forme de deux jeux de variables indiquant le changement de l'indicatif de niveau n (ou rupture de niveau n) :
  • RTPn pour la rupture entre l'itération précédente du Programme et celle en cours.
  • RTDn pour la rupture entre l'itération en cours du Programme et la prochaine.
Ces variables sont également disponibles lorsqu'il n'y a pas de Structure de Données synchronisées dans le Programme. Pour une Structure de Données d'utilisation D: Fichier en sortie, affecter un nombre de niveaux de rupture différent de zéro permet d'obtenir au niveau du Programme généré une zone de réserve en WORKING-STORAGE SECTION affectée du radical 1- qui sera utilisée pour les traitements sur le fichier. Cependant, il est préférable de faire cela directement dans la WORKING-STORAGE SECTION du code COBOL en utilisant des micro-patterns.
Niveau de synchronisation
Les Structures de Données en accès séquentiel en entrée lues simultanément doivent être synchronisées. Le niveau indiqué est le niveau mineur de l'argument sur lequel les Structures de Données sont rapprochées. La valeur par défaut est 0 et le niveau peut aller jusqu'à 9.

Lorsque la synchronisation se limite à deux Structures de Données, les niveaux doivent être égaux (non contrôlé).

Lorsqu'il y a plus de deux Structures de Données, certaines peuvent être synchronisées à un niveau majeur par rapport aux autres.

Pour que la synchronisation soit automatique, les conditions suivantes doivent être réalisées :
  • Le niveau de rupture des Structures de Données doit être égal au niveau de synchronisation - 1, sauf pour une Structure de Données Mouvement pour laquelle le niveau de rupture doit être supérieur ou égal au niveau de synchronisation.
  • Les Rubriques composant l'argument de chaque Structure de Données doivent être classées en séquence croissante.
  • Les Rubriques composant l'argument de chaque Structure de Données doivent être de même longueur à niveau égal.
  • Ces Rubriques doivent avoir un format étendu. Si elles sont numériques, elles doivent être entières et non signées.
Si ces conditions ne sont pas réalisées, il faut modifier la cinématique du Programme avec du code spécifique.
La synchronisation se traduit par deux jeux de variables donnant l'état des Structures de Données :
  • dd-CFn : configuration de la Structure de Données dd au niveau n indique la participation de la Structure de Données en entrée au traitement pour ce niveau d'indicatif. (Valeur 1 : l'argument à ce niveau est égal au minimum en cours de traitement, valeur 0 sinon).
  • dd-OCn : occurrence de la Structure de Données dd au niveau n, indique, pour les Structures de Données principales, que l'on est en cours de mise à jour d'un Segment ou d'une séquence de Segments de la Structure de Données dd.
Utilisation
Cette zone permet de définir le rôle de la Structure de Données dans le Programme et de commander la génération des fonctions automatiques.
Tableau 7. Valeurs de l'utilisation de la Structure de Données
Valeur Commentaire
C: Consultation Structure de Données quelconque en entrée.
D: Fichier en sortie Structure de Données quelconque en sortie.
P: Principal Structure de Données en entrée susceptible d'être mise à jour par une Structure de Données d'utilisation M: Mouvement à contrôler ou N: Mouvement à ne pas contrôler.
R: Résultat Structure de Données principale après mise à jour en accès séquentiel. Si la Structure de Données contient des clauses OCCURS DEPENDING, le résultat doit être déclaré en utilisation D: Fichier en sortie.
S: Sélectionné Structure de Données en sortie extraite d'une autre Structure de Données.

A la différence d'une Structure de Données D: Fichier en sortie, sa description en zone de sortie n'est pas détaillée. Lorsque la Structure de Données contient des Rubriques dont le nombre de répétitions dépend d'un compteur (OCCURS DEPENDING ON), son utilisation doit être D: Fichier en sortie.

T: Table stockée en mémoire Structure de Données destinée à être stockée intégralement en mémoire.

La table de stockage est générée en fonction du nombre de répétitions indiqué sur la Définition du Segment. Il n'est pas possible de sélectionner plus de 50 Segments par Structure de Données.

X: Table partiellement stockée en mémoire Structure de Données stockée partiellement en mémoire (seules les Rubriques autres que les fillers sont décrites).

Les Rubriques élémentaires autres que les fillers sont limitées à 10 pour la partie commune (code Structure excepté) et à 29 pour chaque partie spécifique.

M: Mouvement à contrôler Structure de Données en entrée à contrôler pouvant mettre à jour d'autres Structures de Données (fonctions générées : 30 à 76).
Remarque : Il n'est pas possible de déclarer plus d'une Structure de Données d'utilisation M: Mouvement à contrôler ou N: Mouvement à ne pas contrôler par Programme.
N: Mouvement à ne pas contrôler Structure de Données en entrée pouvant mettre à jour d'autres Structure de Données (fonctions générées : 30, 33, 39, 70 à 76).
Remarque : Il n'est pas possible de déclarer plus d'une Structure de Données d'utilisation M: Mouvement à contrôler ou N: Mouvement à ne pas contrôler par Programme.
E: Mouvement avec détection d'erreurs Rapport de contrôle: Structure de Données mouvement en sortie.

La description comporte ou non les Rubriques facultatives. Dans le cas où il n'y a pas de sélection de celles-ci, la description sera précédée des Rubriques ENPR et GRPR calculées lors de la génération et reprenant les vecteurs EN-PRR et GR-PRR.

I: Impression directe Impression directe (ou par SYSOUT en OS IBM).

La structure commune éventuellement présente dans la description de l'Etat ne sera pas prise en compte.

J: Impression indirecte Impression indirecte à traiter par un programme de spool.

Cette valeur suppose l'utilisation de la structure 00 pour définir une partie commune à toutes les lignes.

Y: Table de codification interne Pas de commentaire.
Argument de tri
C'est la suite des Rubriques composant l'argument (ou indicatif) de la Structure de Données, repérées par leur rang, tel qu'il est défini dans la description du Segment.

Ces Rubriques sont identifiées dans la zone Clés de tri de l'onglet Lignes -CE du Segment.

Si cette zone n'est pas utilisée, l'indicatif principal (Rubriques de rang 1 à 9) sera repris par défaut.

Autres

Type de format
Sélectionnez le format des Rubriques appelées dans les Segments de la Structure de Données.
Vous devez sélectionner le format en fonction de l' utilisation de la Structure de Données indiquée dans l'onglet Lignes -CD. Cette zone ne concerne pas les Structures de Données dont l'utilisation est I : Impression directe et J : Impression indirecte.
Remarque : Les Rubriques constituant les Segments ne doivent pas dépasser 999 caractères.
Tableau 8. Types de format des Rubriques
Valeur Commentaire
E : Entrée Valeur par défaut pour les fichiers d'utilisation M: Mouvement à contrôler, N: Mouvement à ne pas contrôler, E: Mouvement avec détection d'erreurs
I: Interne Valeur par défaut pour les fichiers d'utilisation autre que M: Mouvement à contrôler, N: Mouvement à ne pas contrôler, E: Mouvement avec détection d'erreurs
S: Edition  
Sous-schéma
Un sous-schéma est un groupe de Rubriques présentes dans la composition du Segment.

Cette zone est utilisée avec le module Pactables pour indiquer le sous-schéma qui va être décrit. Le sous-schéma est numérique, de 0 à 9 (0 correspond au sous-schéma 10)

Type de description
Sélectionnez le type de description de l'enregistrement qui va être utilisé dans le programme COBOL. Ceci permet d'obtenir plusieurs modes d'agencement des enregistrements d'une Structure de Données à partir des mêmes descriptions en Bibliothèque.
Tableau 9. Valeurs du type de description
Valeur Signification
Enregistrements redéfinis Pas de clause VALUE générée
1: Enregistrements sans valeurs initiales Enregistrements à la suite (partie commune suivie des différentes parties spécifiques), sans valeur initiale ni répétition d'enregistrements.

Si la description de la Structure de Données apparaît en FILE SECTION COBOL, la zone Nombre de niveaux du Segment doit avoir la valeur 2: niveaux COBOL 01 pour SD et 02 pour Segments.

2: Enregistrements avec valeurs initiales Enregistrements à la suite avec prise en compte des valeurs initiales spécifiées sur les lignes d'appel des Rubriques dans les Segments (onglet Lignes -CE), ou à défaut initialisation à blanc ou zéro selon le format.

Les valeurs initiales seront aussi générées pour les zones répétées, si le Langage généré de la Bibliothèque est D: COBOL II, 85, LE.

3: Enregistrements avec occurs (avec niveau 2) Enregistrements à la suite avec prise en compte du nombre de répétitions indiqué dans la zone Nombre de postes de l'onglet Définition du Segment, sans valeurs initiales.

Aucune clause VALUE ne sera générée.

Si la description de la Structure de Données apparaît en FILE SECTION COBOL, la zone Nombre de niveaux du Segment doit avoir la valeur 2: niveaux COBOL 01 pour SD et 02 pour Segments.

Ce type de description ne peut être employé pour une Structure de Données ayant un nombre de répétitions sur la partie commune (indiquez dans ce cas une Organisation W: Description de fichier en working et une Utilisation T: Table stockée en mémoire).

4: Enregistrements avec occurs (avec niveau 3) Enregistrements à la suite avec prise en compte du nombre de répétitions indiqué dans la zone Nombre de postes de l'onglet Définition du Segment.

La zone Nombre de niveaux du Segment doit avoir la valeur 3: niveau COBOL pour SD et Segments dépendant du type de description.

Remarque spécifique au module Dialogue : L'indice n'est pas généré si le type de description est 4: Enregistrements avec occurs (avec niveau 3) et le Nombre de niveaux du Segment est 3: niveau COBOL pour SD et Segments dépendant du type de description,

Le niveau 02 permet d'accéder à la table constituée par la répétition d'un même enregistrement.

Le niveau 01 regroupe l'ensemble des informations de la Structure de Données (partie commune et parties spécifiques répétées ou non).

Ce type de description ne peut être employé pour une Structure de Données ayant un nombre de répétitions sur la partie commune (indiquez dans ce cas une Organisation W: Description de fichier en working et une Utilisation T: Table stockée en mémoire).

Nombre de niveaux du Segment
Utilisée conjointement avec la zone Type de description, cette zone définit le nombre niveau COBOL des descriptions des Structures de Données, Segments et Rubriques. Dans les descriptions ci-après on entend par "niveau S.D", le niveau COBOL de la zone DD00 (éventuellement 1-DD00, 2-DD00).
Tableau 10. Valeurs possibles du nombre de niveaux du Segment
Valeur Commentaire
1: niveau COBOL 01 pour SD et Segments Si la description de la S.D. apparaît en FILE SECTION COBOL, les Segments doivent obligatoirement être redéfinis.

Si la Structure de Données est sans partie commune avec une description de type non redéfinie, le niveau de S.D. n'apparaît que lorsque le Type de description est positionné à Enregistrements redéfinis.

2: niveaux COBOL 01 pour SD et 02 pour Segments Si le Type de description est positionné à Enregistrements redéfinis, la S.D. et les Segments seront décrits au niveau 02 (Utilisez de préférence une organisation L: Working avec placement et définissez les nombres de niveaux supérieurs dans les zones de travail).
3: niveau COBOL pour SD et Segments dépendant du type de description Niveau 02 pour S.D. et niveau 03 pour Segments lorsque le Type de description est positionné à 1: Enregistrements sans valeurs initiales, 2: Enregistrements avec valeurs initiales ou 3: Enregistrements avec occurs (avec niveau 2).

Niveau 01 pour S.D. et 03 pour Segments si le Type de description est positionné à 4: Enregistrements avec occurs (avec niveau 3).

Niveau 03 pour S.D. et Segments si le Type de description est Enregistrements redéfinis.

4: niveau COBOL 02 pour Rubriques, absence de niveau SD et Segments Réservé aux S.D. avec une organisation L: Working avec placement et une Utilisation D: Fichier en sortie.

Niveau 02 pour Rubriques groupe ou Rubriques élémentaires n'appartenant pas à un groupe. Les Rubriques élémentaires appartenant à une Rubrique groupe apparaissent mais les niveaux S.D et Segments disparaissent.

Le niveau 01 doit être défini dans la WORKING-STORAGE SECTION.

5: niveau COBOL 01 pour Rubriques, absence de niveau SD et Segments Réservé aux S.D. avec une organisation L: Working avec placement ou W: Description de fichier en working et une Utilisation D: Fichier en sortie.

Niveau 01 pour les Rubriques groupe ou Rubriques élémentaires n'appartenant pas à un groupe. Les Rubriques élémentaires appartenant à un groupe apparaissent mais les niveaux S.D. et Segments disparaissent.


Vos commentaires