Rational Programming Patterns

Définition d'une Rubrique non définie

Pour afficher le détail de la section Définition d'une Rubrique non définie, cliquez sur une ligne contenant une Rubrique non définie dans les lignes -CE du Segment ou de la Table. Vous devez saisir un certain nombre d'informations pour définir une Rubrique au niveau du Segment ou Table : son nom, son libellé, son format interne, usage, répétitions, et indicateur de tri. Vous pouvez également redéfinir une Rubrique de même niveau COBOL en cochant la case Redéfinition. D'autres caractéristiques associées à la Rubrique définie dans le Segment peuvent être complétées en cliquant sur Plus d'infos. Cliquez sur Lignes -G pour spécifier les -GC, -GE ou -GG de cette Rubrique.

Nom
Ce nom est un code alphanumérique qui repère la Rubrique indépendamment de toute appartenance à une Structure de Données, à un Etat ou à un Ecran Il est donc inutile d'inclure un code Segment, Etat ou Ecran dans le code Rubrique : ce code sera automatiquement ajouté lors de la génération.

Certains noms de Rubriques ont un emploi réservé dans les Structures de Données, les Etats ou les Ecrans. Leur définition est donc interdite :

Tableau 1. Liste des noms réservés pour les Rubriques
Nom Réservé pour
FILLER Alignement des champs

ENPR

GRPR

ERUT

Contrôle d'erreur sur les fichiers mouvements (options du module Langage Batch) :

Contrôle d'erreurs des Rubriques

Contrôle d'erreurs des Segments

Contrôle d'erreurs définies par l'utilisateur

Libellé
Saisissez le libellé identifiant l'instance. Il constituera un critère de recherche lors d'une recherche d'instance.
Format interne
Ce format, affiché aussi dans l'onglet Vue d'ensemble, est obligatoire, sauf si la Rubrique est une Propriété.
Ce format est utilisé lorsque la Rubrique est appelée dans un des composants suivants :
  • Un fichier de l'application (fichier permanent, base de données, fichier temporaire)
  • Un écran en entrée de la zone, si aucun format conversationnel n'est indiqué (voir la zone Type de ligne dans l'onglet Lignes -D de l'éditeur de Rubrique)
Ce format est transféré automatiquement vers les Segments où se fait l'appel de Rubrique. Mais vous pouvez finalement choisir le format approprié dans l'onglet Lignes -CD des Programmes qui appellent ces Segments.

Vous devez assurer la compatibilité entre le format interne et le format d'entrée.

Vous devez saisir le format interne comme une "picture" COBOL, sans caractères d'édition.
Notes :
  • Dans la majorité des cas, le format de type numérique d'une Rubrique est entré tel quel. Toutefois, s'il excède 10 caractères, vous devez supprimer le 9 après la virgule. Par exemple, le format S9(10)V9(3) qui occupe 11 caractères sera entré sous la forme S9(10)V(3) qui n'occupe que 10 caractères, mais il sera généré sous la forme S9(10)V9(3).
  • Pour les Rubriques de type Unicode (type U), vous devez indiquer N(n) ou un format numérique signé ou non.
La clause INTERNAL USAGE concerne ce format seul.
Remarque : Pour les Rubriques de type Unicode, si le format interne est numérique signé, l'usage interne doit être X ou 1.
Vous pouvez indiquer les formats symboliques suivants pour les Rubriques de type date :
Tableau 2. Formats symboliques pour les dates
Valeur Signification
D Date sans siècle (JJMMAA ou MMJJAA)
I Date sans siècle (AAMMJJ)
E Date sans siècle (JJ/MM/AA ou MM/JJ/AA)
S Date avec siècle (SSAAMMJJ)
C Date avec siècle (JJMMSSAA ou MMJJSSAA)
M Date avec siècle (JJ/MM/SSAA ou MM/JJ/SSAA)
G Format grégorien (SSAA-MM-JJ)
T Format TIME (HH:MM:SS)
TS Format TIMESTAMP
Remarque : Pour les formats incluant un séparateur (E, G, M, T), vous pouvez indiquer, à la suite du caractère représentant le format, un caractère représentant un séparateur différent de celui prévu par défaut dans le format. Par exemple, vous pouvez indiquer G/ dans cette zone pour générer un format grégorien SSAA/MM/JJ au lieu du format grégorien standard SSAA-MM-JJ.

Pour l'utilisation des formats avec les différents types de Blocs Bases de Données, reportez-vous aux tableaux récapitulatifs du chapitre Colonnes : Rubriques dans le manuel DBD relationnelles SQL, disponible depuis le site de la documentation VisualAge Pacbase à l’URL suivante :

http://www-1.ibm.com/support/docview.wss?rs=37&context=SSEP67&uid=swg27005478

Usage
Cet usage correspond à la clause COBOL USAGE.

La clause USAGE d'une variable COBOL numérique permet d'indiquer la présentation interne de sa valeur. Il existe plusieurs USAGEs en fonction des variantes COBOL adaptées au matériel.

Vous choisissez l'usage d'une Rubrique en fonction de la :
  • Variante de génération associée à la Bibliothèque dans laquelle vous la définissez
  • Représentation interne que vous désirez.
    Exemple : Si vous générez pour IBM, l'usage C génère la clause USAGE BINARY et F la clause USAGE COMP-1. Pour UNISYS 1100, l'usage H génère la clause USAGE COMP.
Vous pouvez utiliser cette Rubrique dans une Bibliothèque de niveau hiérarchique inférieur et dont la variante de génération est différente de celle de la Bibliothèque supérieure.
Exemple : Vous avez défini la Rubrique CORUB dans la Bibliothèque SUP avec C comme usage et vous l'utilisez dans une bibliothèque INF qui a une variante de génération pour UNISYS 1100.
Lorsque ce cas se produit, l'usage de la Rubrique sera automatiquement remplacé par un équivalent compatible avec la variante de génération. Ainsi, lorsque vous visualisez CORUB dans INF, l'usage qui s'affiche automatiquement est H.
Tableau 3. Valeurs possibles pour l'usage
Valeur Signification
B COMPUTATIONAL-1 ICL 1900 BINARY-1 UNISYS 1100
C COMPUTATIONAL type IBM ou équivalent;

BINARY type IBM et variante COBOL II.

D DISPLAY (option par défaut, sauf pour les Rubriques de type Unicode), tout matériel.

Obligatoire pour les Rubriques représentant des dates.

F COMPUTATIONAL-1 IBM ou équivalent.

COMPUTATIONAL-9 BULL GCOS7. COMPUTATIONAL-11 GCOS8.

DBD Relationnelles : virgule flottante simple précision.

G COMPUTATIONAL SYNCHRONIZED RIGHT ICL 2900

COMPUTATIONAL-5 MICRO FOCUS.

H COMPUTATIONAL UNISYS 2200.

BINARY UNISYS 2200 (COBOL 85)

I DISPLAY-1 UNISYS 2200
J COMPUTATIONAL-6 GCOS8.

REAL UNISYS-A.

N COMPUTATIONAL-4 cadré sur un demi-octet. En cas de longueur impaire, le complément n'est pas généré; vous devez donc l'ajouter.

NATIONAL (option par défaut) pour les Rubriques de type Unicode (type U)

O COMPUTATIONAL-4 UNISYS 2200
P COMPUTATIONAL-1GCOS8.
Q COMPUTATIONAL GCOS8.
R COMPUTATIONAL SYNCHRONIZED RIGHT, IBM ou équivalent. Cet usage est recommandé, de préférence à l'usage C, lorsque les données binaires sont cadrées sur des adresses paires, car les instructions COBOL les concernant sont plus performantes.
T COMPUTATIONAL-3 PACKED SYNC. GCOS8.
U COMPUTATIONAL-1 UNISYS 2200.
W COMPUTATIONAL-2 UNISYS 2200.

COMPUTATIONAL-12 GCOS8.

Bases de Données Relationnelles : virgule flottante double précision.
X DISPLAY SIGN IS TRAILING SEPARATE CHARACTER.

ou NATIONAL SIGN IS TRAILING SEPARATE CHARACTER pour les Rubriques de type Unicode (type U).

Y DB-KEY GCOS8. POINTER IBM and MICRO FOCUS
Z Option réservée au batch : permet de faire générer une clause BLANK WHEN ZERO, cette option n'étant utilisable qu'avec un format d'édition.
0 COMPUTATIONAL-7 GCOS8
1 DISPLAY SIGN LEADING SEPARATE - UNISYS 2200, GCOS8, IBM, TANDEM, GCOS7.

or NATIONAL SIGN IS LEADING SEPARATE CHARACTER pour les Rubriques de type Unicode (type U).

2 DISPLAY-2 GCOS8 = DISPLAY, la comparaison de zones de ce type se fait suivant la "commercial collating sequence" et non suivant la séquence standard.
3 COMPUTATIONAL-3 IBM ou équivalent.

COMPUTATIONAL GCOS7

PACKED-DECIMAL UNISYS 2200 (COBOL 85)

5 COMPUTATIONAL-1 GCOS7 GCOS8
6 COMPUTATIONAL-2 GCOS7 GCOS8
7 COMPUTATIONAL-5 ICL 2900.
8 COMPUTATIONAL BULL 66 GCOS8.
9 COMPUTATIONAL-3 GCOS7 and GCOS8.

Pour les Rubriques non définies, une fois le format interne défini, sélectionnez une valeur pour l'usage (la valeur par défaut est D pour l'affichage).

Répétitions
Les restrictions COBOL portant sur la clause OCCURS s'appliquent ici. Vous pouvez indiquer un nombre de répétitions au niveau d'une Rubrique élémentaire, d'un groupe ou d'un filler. Le nombre de répétitions est limité à 99.
Indicateur de tri
Vous devez entrer dans cette zone un caractère alphanumérique qui identifie une Rubrique ou un Segment utilisé comme indicatif dans un fichier. Cela permet de repérer les Rubriques susceptibles d'appartenir à un indicatif (ou argument) de tri ou d'être utilisées comme clé d'accès à un fichier, une base de données ou à une Table Pactables.
Remarque : Il est vivement recommandé de dédier un Segment à un seul type d'utilisation. Toute Rubrique susceptible d'appartenir à un indicatif de tri doit être repérée par un caractère (chiffre ou lettre). Un même caractère ne peut être utilisé qu'une seule fois dans la description du Segment. Il est recommandé d'utiliser des suites (1, 2, 3 ...). L'ordre réel de tri du fichier sera indiqué au niveau du Programme, en listant les caractères repères dans l'ordre souhaité sur l'appel des Structures de données (-CD).
Rappel : S'il s'agit d'un groupe, son format doit être indiqué explicitement au niveau du référentiel ou du Segment. Les indicatifs sont interdits pour une Rubrique qui redéfinit une autre Rubrique.
Tableau 4. Valeurs possibles de l'indicatif de tri pour Pactables
Valeurs Commentaires
U Clé d'accès de la Table. Cette valeur doit être indiquée sur la Rubrique groupe si la clé est sous-définie.
S Rubrique définissant l'appartenance à un sous-système
Tableau 5. Valeurs possibles de l'indicatif de tri pour les bases de données DL/1
Valeurs Commentaires
U Clé unique pour bases de données DL/1.
M Clé multiple pour bases de données DL/1.
1 à 9 Index secondaire. Toute autre valeur désigne un champ de recherche.
Tableau 6. Valeurs possibles de l'indicatif de tri pour AS400 et les bases relationnelles
Valeurs Commentaires
0 à 9 Clé fichier physique AS400. Bases de données relationnelles.
V Colonne de format variable.
Blanc Colonne de format fixe.
W Pour DB2 SQL, SQL/DS et ORACLE, génération d'une VARCHAR, quelle que soit sa longueur.
L Pour DB2 SQL, SQL/DS et ORACLE, génération d'une LONG VARCHAR.
Remarque : les indicatifs sont interdits pour une Rubrique qui redéfinit une autre Rubrique.
Redéfinition
La redéfinition est possible pour un Segment. Cela regénère la clause COBOL REDEFINES. La Rubrique qui porte cette option redéfinit la Rubrique de même niveau COBOL qui la précède sur les lignes -CE du Segment. Si une Rubrique qui redéfinit une autre Rubrique fait partie d'un groupe, elle est considérée comme une Rubrique élémentaire. Elle doit être prise en compte dans le calcul du nombre de Rubriques contenues dans un groupe (excepté pour les Segments de la base DL/1).
Note : Lorsque les Rubriques sont redéfinies, leur longueurs respectives ne sont pas prises en compte; cela reste à votre charge. Pour le calcul de la longueur d'adresse (affiché avec le bouton Afficher les longueurs et les positions), la longueur de Rubrique redéfinie est utilisée pour le calcul de l'adresse. Les Rubriques redéfinies sont ignorées lors de la génération avec le module de Description de Base de Données.
Pour redéfinir une Rubrique, cliquez la case Redéfinition. La nouvelle Rubrique apparaît sous la ligne Redéfinition dans la liste des lignes -CE du Segment, elle est précédée de la Rubrique de même niveau dans la liste des appels. Vous devez alors sélectionner une valeur pour la zone Répétitions dans la section Ensemble de redéfinitions.

Plus d'infos

Cliquez sur le bouton Plus d'infos pour spécifier les types de contrôle sur les Rubriques appelées dans le Segment (contrôle de présence et de classe).

Lignes -G

Cliquez sur Lignes -G pour définir des lignes -GC d'une Rubrique appelée dans le Segment.


Conditions d'utilisation | Commentaires en retour

Ce centre de documentation utilise la technologie Eclipse. (http://www.eclipse.org)