Rational Programming Patterns for System z

Micro-pattern d'appel de Structure de Données dans les zones de travail et de liens

Ce micro-pattern est un commentaire formaté inséré dans le code d'un Programme ou d'une Macro. Ce commentaire appelle une Structure de Données dans les zones de travail et de liens. Après une regénération du Programme, le micro-pattern sera complété avec la description de la Structure de Données.

Prise en compte de la génération Pacbase

Quand un Programme, Ecran ou Serveur est généré avec la procédure GPRT en option C9, tous les appels de Rubriques et de Structures de Données dans les lignes -W (sur des lignes de type E, I, S et F) sont générés sous forme de micro-patterns.

Le générateur ajoute :
      *{Wx 'contenu du micro-pattern' enabled=false
      *}

Il ajoute le caractère * marquant le commentaire, les accolades ouvrantes et fermantes et indique l'identifiant du micro-pattern (W suivi du type de la ligne dans les lignes -W).

Il ajoute aussi la propriété enabled=false, sauf s'il s'agit du COBOL issu d'une Macro. Après la génération depuis Rational Programming Patterns for System z, cette propriété permet d'attirer votre attention sur d'éventuelles différences de génération du micro-pattern par rapport à la génération Pacbase. Tant que cette propriété sera présente dans le COBOL de l'instance, la génération du micro-pattern depuis Pacbase sera conservée.

Si des différences sont détectées, le COBOL issu de Pacbase est conservé et la propriété est laissée positionnée.

Si aucune différence n'est détectée, la propriété est automatiquement supprimée du COBOL.

Si vous voulez conserver la génération locale malgré les différences détectées, vous devez supprimer manuellement la propriété enabled=false du COBOL. Si vous la conservez, les modifications locales apportées au micro-pattern seront écrasées lors de la génération suivante.

Après la suppression de la propriété, vous pouvez faire évoluer votre micro-pattern depuis Rational Programming Patterns for System z. Les modifications seront prises en compte lors de la génération suivante.

Format de saisie

Vous pouvez insérer ce micro-pattern dans les sections WORKING-STORAGE et LINKAGE du code COBOL, en utilisant l'éditeur COBOL PDP.
Remarque : Vous pouvez saisir intégralement le micro-pattern ou utiliser le masque de saisie disponible depuis la vue Fragments de Rational Developer for System z, dans la catégorie Squelettes RPPz.

Vous devez saisir une ligne d'appel du micro-pattern avec ses différents paramètres et une ligne de fin du micro-pattern.

Par exemple :
*{WF  DSL=GD DSP=G1 SEL=01 FOR=I LEV=1 ORG=2 DES=1 SSC=3 GRP=N
*}
où :
  • *{ est la balise de début du micro-pattern, obligatoire. Le * doit être saisi en colonne 7, réservée aux commentaires dans le code COBOL, et le { doit être saisi en colonne 8.
  • WF est l'identifiant du micro-pattern, obligatoire.
  • *} est la balise de fin du micro-pattern, obligatoire. Le * doit être saisi en colonne 7, réservée aux commentaires dans le code COBOL, et le } doit être saisi en colonne 8.

Seul le paramètre DSL=, qui spécifie le code de la Structure de Données à utiliser, est obligatoire. Si les autres paramètres ne sont pas renseignés, leurs valeurs par défaut sont prises en compte.

Les paramètres peuvent être saisis dans n'importe quel ordre.

Les paramètres

DSL=
Indiquez le code de la Structure de Données à utiliser. Ce paramètre est obligatoire.
DSP=
Indiquez le code de la Structure de Données dans le programme.

Le premier caractère doit être alphabétique mais le second peut être numérique ou alphabétique. Ce code permet de différencier plusieurs appels de la même Structure de Données dans un Programme.

Si ce code n'est pas renseigné, le code indiqué dans le paramètre DSL est pris en compte.

SEL=
Indiquez une sélection de Segments de cette Structure de Données. Si ce paramètre n'est pas renseigné, tous les Segments de la Structure sont pris en compte.

Vous devez saisir les deux derniers codes des Segments les uns à la suite des autres, sans séparation.

Vous pouvez renommer un Segment en saisissant un signe = entre le Segment initial et le Segment renommé (par exemple : 01=02).

FOR=
Indiquez le format des Rubriques appelées dans les Segments de la Structure de Données (interne (I), entrée (E) ou sortie (S)). Si ce paramètre n'est pas renseigné, le format interne est pris en compte
LEV=
Indiquez le niveau COBOL. Si ce paramètre n'est pas renseigné, le niveau 1 est pris en compte.

Utilisé conjointement avec le paramètre DES (type de description), ce paramètre 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).

Les valeurs possibles sont :
Tableau 1. Valeurs possibles du nombre de niveau du Segment
Valeurs Commentaires
1 Niveau COBOL 01 pour SD et Segments (valeur par défaut)

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 paramètre DES est à blanc (enregistrements redéfinis).

2 Niveaux COBOL 01 pour SD et 02 pour Segments

Si le paramètre DES est à blanc (enregistrements redéfinis). la S.D. et les Segments seront décrits au niveau 02.

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 paramètre DES est à 1 (enregistrements sans valeurs initiales), 2 (enregistrements avec valeurs initiales) ou 3 (enregistrements avec répétitions (avec niveau 2)).

Niveau 01 pour S.D. et 03 pour Segments si le paramètre DES est à 4 (enregistrements avec répétitions (avec niveau 3)).

Niveau 03 pour S.D. et Segments si le paramètre DES est à blanc (enregistrements redéfinis).

4 Niveau COBOL 02 pour les Rubriques de premier niveau.

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 les Rubriques de premier niveau.

Les Rubriques élémentaires appartenant à une Rubrique groupe apparaissent mais les niveaux S.D et Segments disparaissent.

6 Niveau COBOL 02 pour les Rubriques de premier niveau.

Les Rubriques élémentaires appartenant à une Rubrique groupe, les niveaux S.D et Segments disparaissent.

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

Valable uniquement pour un Ecran standard Dialogue.

7 Niveau COBOL 01 pour les Rubriques de premier niveau.

Les Rubriques élémentaires appartenant à une Rubrique groupe, les niveaux S.D et Segments disparaissent.

Valable uniquement pour un Ecran standard Dialogue.

DES=
Indiquez 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.

Si ce paramètre n'est pas renseigné, la valeur à blanc (enregistrements redéfinis) est prise en compte.

Tableau 2. Valeurs possibles du type de description
Valeurs Commentaires
(blanc) Enregistrements redéfinis
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, le paramètre LEV 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, 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 prise en compte du nombre de répétitions (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.

Si la description de la Structure de Données apparaît en FILE SECTION COBOL, le paramètre LEV 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.

4 Enregistrements avec prise en compte du nombre de répétitions (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.

Le paramètre LEV 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 paramètre LEV à 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 (ddssT).

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.

ORG=
Indiquez l'organisation de la Structure de Données si la Structure de Données doit être générée sous forme d'une description de Table Pactables ou de base de données (quand le module de description des bases de données n'est pas utilisé).
Tableau 3. Valeurs possibles de l'organisation
Valeurs Commentaires
A Réservé à la description des fichiers ADABAS dans les programmes de définition ou d'utilisation de la base de données.
D Réservé à la description des Segments ou enregistrements de différentes bases de données, DL/1, 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).
G Description de Table

Cette valeur provoque la génération de la zone de communication avec le module Pactables.

M Réservé à la description des structures d'une base de données DATACOM DB.
N Réservé à la description des structures d'une base de données NONSTOP SQL.
P Réservé à la description des structures d'une base de données ORACLE V.6 et V.7.
Q Réservé à la description des structures d'une base de données SQL/DS, DB2/2 ou DB2/6000 (IBM), ALLBASE/SQL (HP3000), DB2/2 ou DB2/600 (MICRO FOCUS).
2 Génération-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.
9 Réservé à la description des structures d'une base de données INFORMIX, INGRES/SQL, SYBASE et SQL SERVER.
SSC=
Indiquez un sous-schéma.

Un sous-schéma est un groupe de Rubriques présentes dans la composition du Segment. Ce paramètre est utilisé 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).

Si ce paramètre n'est pas renseigné, aucun sous-schéma n'est sélectionné.

GRP=
Indiquez si les Segments ne doivent pas être regroupés par Structure de Données dans le code généré d'un Programme batch (GRP=N).

Si ce paramètre n'est pas renseigné, tous les Segments de la même Structure de Données seront regroupés.

Résultat de la génération

Après la re-génération du Programme, le micro-pattern est étendu avec la description de la Structure de Données, selon les paramètres saisis sur le ligne d'appel du micro-pattern.

Figure 1. Exemple de résultat d'une génération
Exemple de résultat de l'expansion d'un micro-pattern WF