Appels de Segments dans un Composant applicatif

Dans l'onglet Lignes -CS des éditeurs Serveur et Dialogue Serveur, vous spécifiez pour chaque Composant Applicatif, la Vue Logique utilisée. Pour cette Vue, vous indiquez les Segments de données d'un fichier, d'une table ou d'une vue SQL accédés. Pour chaque Segment, vous indiquez la catégorie de traitement (entête, répétitive et bas de page), le type de traitement d'accès logique (contrôle, mise à jour et sélection) à effectuer sur le Segment et le mode d'alimentation de la clé, le mode d'utilisation dans les traitements générés, le conditionnement de l'accès par un accès à un autre Segment et l'organisation physique.

Le nombre de lignes de description de Segment appelées dans cette fenêtre est limité à 100 par catégorie.

Remarque : Les Segments ayant le même code Structure de Données doivent avoir la même organisation, le même type de description et, pour l'organisation de type V, le même nom externe.

Les champs sont expliqués selon leur ordre d'affichage dans la section de définition Ligne -CS - Appel de Segment.

Segment
Indiquez le nom du Segment dans le référentiel. Cliquez sur Modifier pour sélectionner un Segment ou changer le Segment appelé. Un assistant de sélection s'ouvre alors avec les Segments sélectionnables. Sélectionnez-en ou créez-en un et cliquez sur OK. Dans le tableau, il s'affiche dans la colonne Seg / VL.

Vous pouvez aussi spécifier le Segment directement depuis la colonne Seg / VL.

Deux méthodes sont possibles :
  • Positionnez le curseur dans la colonne et saisissez directement un nom. Pour faciliter la saisie, vous pouvez afficher un assistant de contenu en cliquant simultanément sur Ctrl et la barre d'espace. Si vous avez commencé à saisir un nom, l'assistant propose les instances commençant par cette saisie. Si vous saisissez le nom d'une instance qui n'existe pas et validez, la saisie n'est pas prise en compte.
  • Cliquez sur le bouton qui s'affiche quand vous positionnez votre curseur dans la colonne. Un assistant de sélection s'ouvre alors pour vous permettre de sélectionner une instance.
Bloc Base de Données
Cette zone n'est accessible que si vous sélectionnez H : Base de données relationnelle (accès SQL) dans la zone Organisation. Vous spécifiez alors le Bloc Base de Données qui contient la ressource appelée. Cliquez sur Modifier pour pouvoir sélectionner un Bloc Base de Données. Un assistant de sélection s'ouvre alors avec les Blocs Bases de Données sélectionnables. Sélectionnez-en ou créez-en un et cliquez sur OK. Dans le tableau, il s'affiche dans la colonne DBD.

Vous pouvez aussi appeler un Bloc Base de Données directement depuis la colonne DBD du tableau.

Deux méthodes sont possibles :
  • Positionnez le curseur dans la colonne et saisissez directement un nom. Pour faciliter la saisie, vous pouvez afficher un assistant de contenu en cliquant simultanément sur Ctrl et la barre d'espace. Si vous avez commencé à saisir un nom, l'assistant propose les instances commençant par cette saisie. Si vous saisissez le nom d'une instance qui n'existe pas et validez, la saisie n'est pas prise en compte.
  • Cliquez sur le bouton qui s'affiche quand vous positionnez votre curseur dans la colonne. Un assistant de sélection s'ouvre alors pour vous permettre de sélectionner une instance.
Table ou Vue
Cette zone est associée à la zone Bloc Base de Données. Vous l'utilisez pour indiquer l'appel d'une table ou d'une vue.

Identifiant

Catégorie
Dans cette zone, vous indiquez à quelle catégorie de traitement le Segment appartient. Les catégories, et donc les Segments correspondants, sont traités dans l'ordre suivant :
  • Blanc : Catégorie en-tête
  • R : Catégorie répétitive
  • Z : Catégorie bas d'écran
Code Segment
Sa saisie est obligatoire. Il correspond au nom de la Vue Logique ou du Segment dans le COBOL généré du Composant Applicatif. Il peut être identique au nom défini dans le référentiel.
Numéro de ligne
Cette zone doit contenir une valeur numérique. Pour un Segment donné, une seule ligne 00 est acceptée (par défaut). Cette ligne 00 est obligatoire pour renseigner les caractéristiques physiques du Segment (nom externe, organisation), le code de la clé d'accès au Segment, le code du Segment dans le référentiel.

Remplissage de la clé d'accès

Code Segment précédent
Il est possible, dans chacune des catégories de traitement, d'accéder à plusieurs Segments. On peut donc être amené à préciser la hiérarchie des accès aux Segments d'une catégorie. Cette zone contient le code du Segment précédent dans la hiérarchie des accès. Ce Segment doit appartenir à la même catégorie. Si plusieurs Segments ont un même Segment précédent, ils sont traités dans l'ordre alphabétique de leur code.
Chaque Segment doit être chaîné directement ou indirectement à la Vue Logique dont il dépend. Il doit donc comporter le code d'un Segment précédent ou de sa Vue Logique (organisation S).
Exception : Le Segment dédié au fichier des libellés d'erreur ne doit pas comporter de Segment précédent. De même, une Vue Logique ne peut avoir de Segment précédent.
Réception
Dans cette zone, vous devez préciser de quelle façon le Segment est utilisé dans les traitements de contrôle et mise à jour.
Tableau 1. Valeurs de l'utilisation d'un Segment dans les traitements de contrôle et mise à jour
Options Description
Aucune valeur ou N : Non utilisé ou aucun appel de Serveur Pour une organisation différente de X, S ou 2, aucun ordre d'accès n'est généré pour le Segment dans les traitements de contrôle et mise à jour.

Pour une organisation de type X ou 2, aucun appel de Serveur n'est généré.

L : Lu ou appel de Serveur pour sélection Un ordre de lecture simple est généré pour le Segment pour une organisation différente de X, S ou 2.

Pour une organisation de type X ou 2, un Serveur est appelé pour sélection.

E : Contrôle d'existence ou appel de Serveur pour contrôle Pour une organisation différente de X, S ou 2, un contrôle d'existence est effectué. Un ordre de lecture avec positionnement d'un code erreur est généré (s’il n’est pas trouvé).

Pour une organisation de type X ou 2, un Serveur est appelé pour contrôle.

M : Mise à jour (modification) ou appel de Serveur pour contrôle et mise à jour Pour une organisation différente de X, S ou 2, le Segment est mis à jour (modification uniquement).

Pour une organisation de type X ou 2, un Serveur est appelé pour contrôle et mise à jour.

X : Mise à jour (création et modification) ou appel de Serveur pour contrôle et sélection Pour une organisation différente de X, S ou 2, le Segment est mis à jour (création et modification uniquement).

Pour une organisation de type X ou 2, un Serveur est appelé pour contrôle et sélection.

S : Segment mis à jour (annulation uniquement) Pour une organisation différente de X ou 2, le Segment est mis à jour (annulation uniquement).
C : Mise à jour (création uniquement) Pour une organisation différente de X ou 2, le Segment est mis à jour (création uniquement).
T : Mise à jour ou appel d'un Serveur pour contrôle, mise à jour et sélection Pour une organisation différente de X, le Segment est mis à jour (création, modification et annulation). Dans ces trois cas, le contrôle d'existence et les ordres de mise à jour correspondant aux options choisies sont générés. Si le Segment est chaîné à un Segment précédent, quelle que soit l'utilisation, seuls sont générés les ordres de mise à jour de modification et création.

Pour une organisation de type X ou 2, un Serveur est appelé pour contrôle, mise à jour et sélection. Si la Vue Logique est appelée dans la catégorie répétitive, il n'est pas possible d'afficher la suite de l'Ecran. Il est donc impossible d'utiliser de manière automatique le code opérateur S.

U : Appel d'un service utilisateur Pour une organisation de type X ou 2, un service utilisateur est appelé.
Réception
Dans cette zone, vous devez préciser de quelle façon le Segment est utilisé dans les traitements de contrôle et mise à jour.
Tableau 2. Valeurs de l'utilisation d'un Segment dans les traitements de contrôle et mise à jour
Options Description
Aucune valeur ou N : Non utilisé ou aucun appel de Serveur Pour une organisation différente de X, S ou 2, aucun ordre d'accès n'est généré pour le Segment dans les traitements de contrôle et mise à jour.

Pour une organisation de type X ou 2, aucun appel de Serveur n'est généré.

L : Lu ou appel de Serveur pour sélection Un ordre de lecture simple est généré pour le Segment pour une organisation différente de X, S ou 2.

Pour une organisation de type X ou 2, un Serveur est appelé pour sélection.

E : Contrôle d'existence ou appel de Serveur pour contrôle Pour une organisation différente de X, S ou 2, un contrôle d'existence est effectué. Un ordre de lecture avec positionnement d'un code erreur est généré (s’il n’est pas trouvé).

Pour une organisation de type X ou 2, un Serveur est appelé pour contrôle.

M : Mise à jour (modification) ou appel de Serveur pour contrôle et mise à jour Pour une organisation différente de X, S ou 2, le Segment est mis à jour (modification uniquement).

Pour une organisation de type X ou 2, un Serveur est appelé pour contrôle et mise à jour.

X : Mise à jour (création et modification) ou appel de Serveur pour contrôle et sélection Pour une organisation différente de X, S ou 2, le Segment est mis à jour (création et modification uniquement).

Pour une organisation de type X ou 2, un Serveur est appelé pour contrôle et sélection.

S : Segment mis à jour (annulation uniquement) Pour une organisation différente de X ou 2, le Segment est mis à jour (annulation uniquement).
C : Mise à jour (création uniquement) Pour une organisation différente de X ou 2, le Segment est mis à jour (création uniquement).
T : Mise à jour ou appel d'un Serveur pour contrôle, mise à jour et sélection Pour une organisation différente de X, le Segment est mis à jour (création, modification et annulation). Dans ces trois cas, le contrôle d'existence et les ordres de mise à jour correspondant aux options choisies sont générés. Si le Segment est chaîné à un Segment précédent, quelle que soit l'utilisation, seuls sont générés les ordres de mise à jour de modification et création.

Pour une organisation de type X ou 2, un Serveur est appelé pour contrôle, mise à jour et sélection. Si la Vue Logique est appelée dans la catégorie répétitive, il n'est pas possible d'afficher la suite de l'Ecran. Il est donc impossible d'utiliser de manière automatique le code opérateur S.

U : Appel d'un service utilisateur Pour une organisation de type X ou 2, un service utilisateur est appelé.
Alimentation de la clé
Cette zone peut être une zone de travail (ww10-corub par exemple) ou un littéral (02 par exemple).
Remarque : L'alimentation des clés pour les listes doit toujours se faire à partir de la zone 1- dans les Serveurs dès lors que la clé se trouve dans la catégorie répétitive de la Vue Logique.

Un chaînage libre est établi dès que vous indiquez une Rubrique dans cette zone.

La saisie dans cette zone est facilitée par un assistant de saisie, signalé par le symbole assistant de saisie devant la zone. Pour activer l'assistant de contenu, cliquez simultanément sur Ctrl et la barre d'espace. Un lien de sous-référence est créé automatiquement, même si l'instance cible n'existe pas. Depuis l'instance cible affichée dans les sous-références, vous pouvez lancer une recherche de super-références.

Si vous placez le curseur de la première à la quatrième position de la zone, l'assistant de contenu affiche d'abord la liste des Segments. Sélectionnez l'un d'eux puis cliquez à nouveau dans la zone et cliquez à nouveau sur Ctrl et la barre d'espace. L'assistant de contenu affiche alors la liste des Rubriques. Sélectionnez l'une d'elles.

Clé primaire

Dans cette section, vous devez sélectionner une Rubrique ou saisir le nom d'une nouvelle Rubrique (non définie) qui servira de clé d'accès au Segment. Elle est utilisée pour générer la clause RECORD KEY. La Rubrique indiquée est considérée comme une Rubrique groupe, sauf dans les organisations SQL où elle est considérée comme Rubrique élémentaire.

Rubrique
Indiquez dans cette zone la Rubrique utilisée comme clé d'accès au Segment. Cliquez sur Modifier pour sélectionner une Rubrique ou changer la Rubrique appelée. Un assistant de sélection s'ouvre alors avec les Rubriques appelées dans le Segment. Sélectionnez-en une et cliquez sur OK. Elle s'affiche dans le tableau dans la colonne Clé accès.

Vous pouvez aussi spécifier la Rubrique directement depuis la colonne Clé accès.

Deux méthodes sont possibles :
  • Positionnez le curseur dans la colonne et saisissez directement un nom. Pour faciliter la saisie, vous pouvez afficher un assistant de contenu en cliquant simultanément sur Ctrl et la barre d'espace. Si vous avez commencé à saisir un nom, l'assistant propose les instances commençant par cette saisie. Si vous saisissez le nom d'une instance qui n'existe pas et validez, la saisie n'est pas prise en compte.
  • Cliquez sur le bouton qui s'affiche quand vous positionnez votre curseur dans la colonne. Un assistant de sélection s'ouvre alors pour vous permettre de sélectionner une instance.
Rubrique non définie
Si la clé d'accès primaire est une Rubrique groupe, vous pouvez saisir dans la zone Rubrique non définie les Rubriques élémentaires composant le groupe.

S'il s'agit d'un groupe et que les différentes sous-Rubriques sont alimentées séparément, des lignes suites contiennent alors le code des sous-Rubriques alimentées.

Pour une Table (organisation G), la sélection d'un sous-système s'effectue en indiquant dans cette zone la valeur NUSSY. L'alimentation de la clé associée (G-ddss-NUSSY) est automatiquement générée.

En DL/1, la Rubrique peut appartenir à toutes les SSA qui permettent d'accéder au Segment dans le PCB indiqué dans le nom externe.

Pour les bases de données SQL, une Rubrique clé doit être indiquée pour chaque ligne où un Affichage autre que N est déclaré.

Dans les accès générés, la sélection se fait sur l'égalité en mise à jour ou lecture directe. Pour la lecture séquentielle en catégorie répétitive, la sélection se fait sur les valeurs supérieures ou égales.

Le nombre de Rubriques clés pour un même Segment est limité à 10

Si le Segment libellés d’erreur est un Segment SQL/DS ou s’il a une organisation V ou W, la Rubrique clé doit être ERKEY.

Caractéristiques logiques

Limitation de génération
Sélectionnez dans la liste la limitation de génération des accès logiques aux Segments.
  • Automatique.

    Les accès logiques sont générés automatiquement (en fonction de l'utilisation du Segment)

  • U : Accès laissés à la charge de l'utilisateur.

    Les traitements logiques d'accès sont gérés par l'utilisateur (organisations différentes de S)

  • P : Pas de description du Segment.

    Il n'y a pas de génération des traitements logiques d'accès (organisations différentes de S).

Rupture d'affichage
Cette zone indique qu'une Rubrique, appartenant à une clé dans la partie répétitive, doit rester constante au cours de l'affichage. Sélectionnez dans la liste la rupture d'affichage. Dans le cas d'un Segment utilisé en mise à jour, cette zone doit être positionnée à la valeur Pas de rupture d'affichage.
Tableau 3. Valeurs possibles pour la rupture d'affichage
Option Description
Pas de rupture de sélection Pour les organisations différentes de S, il n'y a pas de rupture de sélection.
C : Rupture de sélection Pour les organisations différentes de S, il y a pas une rupture de sélection.
E : Rupture de sélection (SQL) Pour les organisations SQL, cette valeur provoque la génération dans la clause WHERE de l'ordre SQL DECLARE CURSOR d'une condition d'égalité.
R : Lecture massive du Dossier (Serveur uniquement) Cette valeur est réservée aux Segments dont l'organisation est H, D ou V. Elle est utilisée pour spécifier une lecture massive, comme l’affichage de toutes les lignes de toutes les commandes, pour chaque Segment rattaché à la Vue Logique. Vous l'indiquez sur chaque Rubrique clé correspondant à une Rubrique clé de la Vue Logique. La Vue Logique doit appartenir au nœud racine du Dossier, s'il existe.
Sous-schéma
Cette zone permet d'indiquer quel sous-schéma doit être décrit. Vous devez sélectionner une valeur dans la liste déroulante parmi Toutes les Rubriques et une sous-description de 0 à 9. La valeur 0 correspond à un sous-schéma 10. Un sous-schéma est un groupe de Rubriques présentes dans la composition du Segment.
  • Pour les organisations G ou H, cette zone précise le numéro de la sous-description de la Table à laquelle correspond la description de la zone entrée-sortie. Si le Segment appelé correspond à une vue et si aucun sous-schéma n'est indiqué, la valeur prise en compte est celle indiquée dans les Lignes -DR du Bloc.
  • Pour les organisations V, cette zone est utilisée pour indiquer les clés secondaires d'accès aux fichiers indexés :
    • La clé secondaire est référencée en codant 2 dans le numéro de sous-schéma. La clé primaire doit être indiquée sur la ligne 00 du Segment sans utilisation en affichage ni réception, même si elle n'est pas utilisée, afin de générer la clause RECORD KEY. Si la clé secondaire est une zone groupe, le numéro du sous-schéma doit être indiqué uniquement pour cette zone groupe.
    • La valeur 3 indique que la clé secondaire est DUPLICATE.
      Remarque : Cette spécification n'est pas implémentée dans la variante CICS puisque la déclaration des clés secondaires est effectuée lors de la définition VSAM.
Niveau des traitements générés
Non utilisé pour un Composant Applicatif.

Caractéristiques physiques

Organisation
La valeur que vous sélectionnez dans cette zone correspond à l'organisation du Segment. Elle est obligatoire pour la ligne 00. Sélectionnez un type d'organisation dans la liste.
Tableau 4. Valeurs de l'organisation des Segments
Options Description
V : Indexée Segment d'organisation indexée.
G : Type Table Segment de type Table. L'accès généré correspond à l'appel du module d'accès standard à Pactables.
H : Base de Données relationnelle (accès SQL) Segment de base de données relationnelle (accès SQL). La description du Segment et les accès physiques sont générés. La déclarative du curseur est générée pour les Segments de la catégorie répétitive.
D : DL/1 Segment DL/1.
A : type ADABAS Segment ADABAS. Seule une description en WORKING-STORAGE SECTION est générée.
W : Traitements spécifiques et alimentation clés d'affichage Accès au Segment gérés par traitements spécifiques. Seule une description en WORKING-STORAGE SECTION est générée. Dans l'onglet Lignes -CS du Dialogue Serveur, cette valeur appelle un buffer utilisateur.
S : Appel de la Vue Logique Appel de la Vue Logique.
X : Appel d'un serveur pour contrôle et sélection Appel global d'un Composant Applicatif. Tous les Segments appelés en répétitive et en sélection doivent être du même type. Il ne peut y avoir de Segments d'organisation X avec des Segments d'autres organisations.
2 : Appel d'un Composant Applicatif instance par instance Appel d'un Composant Applicatif instance par instance.
Type de description
La zone Type de description affiche des valeurs permettant d'obtenir, à partir de la description du Segment dans le référentiel, différentes descriptions dans le COBOL généré. Les valeurs possibles sont les suivantes :
  • Complet (valeur par défaut) pour un Segment avec une éventuelle partie commune. Il s'agit, par exemple, d'une Structure de Données avec un Segment.
  • 1 : Partie spécifique uniquement pour un enregistrement sans partie commune. Il peut s'agir par exemple, pour les bases de données, de plusieurs Segments définis dans une même Structure de Données.
  • E : Type Table pour l'organisation Table. Le format d'entrée des Rubriques du Segment Table est pris en compte.
  • 2 : Complet (longueur variable) pour un Segment complet en longueur variable dans une organisation indexée (V). La description générée peut varier en fonction de la variante de langage sélectionnée.
Nom externe
C'est le nom externe du fichier. La valeur par défaut contient les deux premiers caractères du Segment dans le Serveur.
  • Pour une organisation V (indexée), sa valeur dépend de la variante :
    • Pour IBM CICS-VSAM, il correspond au DDNAME sur 1 à 8 positions.
    • Pour GCOS8 - TP8, sa valeur dépend du type de blocage :
      • Si blocage par caractères : Nom externe sur 4 caractères (généré dans la clause SELECT) et blocage sur les 4 derniers caractères (généré dans la clause FD).
      • Si blocage par record : Nom externe sur 5 caractères et blocage sur les 3 derniers caractères. Les deux parties du nom externe, chacune sur 2 caractères, sont séparées par un blanc.
    • Pour les autres variantes, il correspond au nom logique, généré dans la clause SELECT.
  • Pour une organisation H (SQL), il correspond au Bloc SQL dans lequel la table est appelée.

    Au moment de la génération, le nom externe de la table ou vue est recherché dans la description du Bloc. S'il n'est pas indiqué, le nom externe est pris sur la définition du Segment.

  • Pour une organisation G (Pactables), sa valeur dépend de la variante :
    • CICS : 4 caractères sur lesquels sont bâtis les DDNAME des fichiers gérés par Pactables. Ce sont les caractères du code transaction permettant l'accès au fichier Tables.
    • IMS : Nombre quelconque de caractères, qui constituent les noms des 2 PCB associés aux bases Pactables. Les noms constitués seront de la forme :
      • xxxxxxD : PCB de la base descriptif,
      • xxxxxxV : PCB de la base des contenus.

      Ces 2 noms doivent avoir une longueur maximum de 6 caractères.

      Ces 2 PCB doivent appartenir au PSB de l'Ecran.

  • Pour une organisation D (DL/1), il correspond au code du PCB.
  • Pour une organisation S (Vue Logique), la valeur par défaut est le code de la Structure de Données.
  • Pour une organisation X ou 2, il correspond au Composant Applicatif.

Vos commentaires