> Tech > Améliorations apportées à  la structure de données

Améliorations apportées à  la structure de données

Tech - Par iTPro - Publié le 24 juin 2010
email

Les améliorations de la structure de données présentes en V5R2 s'appuient sur la fonctionnalité de structure de données QUALIFIED et LIKEDS. Les noms qualifiés introduits en V5R1 sont considérés en V5R2 comme des noms simplement qualifiés. Un nom simplement qualifié est de forme A.B (c'est-à dire, deux noms séparés par un

Améliorations apportées à  la structure de données

point,
suivis éventuellement d’un index de tableau).
La V5R2 introduit le concept de
noms entièrement qualifiés, qui peuvent
comporter plus d’un niveau de
qualification ; et chaque nom peut être suivi d’un index de tableau. Par
exemple,

DS(I).Subf.A(J).X

est un nom entièrement qualifié. En
fait, près de 100 niveaux de qualification
sont autorisés.
Comment déclarer de telles structures
de données ? Aucun nouveau
mot-clé n’a été ajouté à  cet effet Mais
deux anciens mots-clés sont à  présent
autorisés dans de nouveaux endroits.

DIM. Tout d’abord, le mot-clé DIM
est désormais autorisé dans une définition
de structure de données. Cela définit
une « structure de données en tableau
», qui est une sorte de structure
de données à  occurrences multiples,
mais l’index doit être codé explicitement
quand on fait référence à  un
sous-champ de la structure de données.
La structure de données doit
aussi être définie comme qualifiée,
puisqu’un nom entièrement qualifié
est nécessaire pour faire référence aux
sous-champs des structures de données
en tableau.
Par exemple, DS(77).Subf fait référence
au sous-champ Subf dans le 77e
élément de la structure de données en
tableau DS. La figure 2 montre le code
et l’utilisation d’une structure de données
en tableau. On remarquera le
nom entièrement qualifié dans l’instruction
d’assignation. Contrairement
aux noms qualifiés simples en V5R1, les
noms qualifiés en V5R2 peuvent être
codés séparés par des espaces.

LIKEDS. L’autre amélioration, plus
radicale, est que le mot-clé LIKEDS est
maintenant autorisé sur une définition
de sous-champ. Autrement dit, un
sous-champ d’une structure de données
peut lui-même être une structure
de données. Là  encore, des noms entièrement
qualifiés sont nécessaires
pour se référer aux sous-champs de
telles structures de données, parce
que nous avons désormais plus d’un
niveau de qualification. Dans la figure
3, le sous-champ Part est une structure
de données de sous-champ, ce qui signifie
qu’il hérite des sous-champs de
la structure de données référencée.

Bien entendu, on peut combiner
les mot-clé LIKEDS et DIM dans la
même structure de données, pour
aboutir à  des structures aussi complexes
que des tableaux de structures.
C’est un peu comme si l’on codait des
sous-champs en chevauchement en
utilisant le mot-clé OVERLAY, mais les
structures de données imbriquées offrent
davantage de possibilités. Les
structures imbriquées montrent plus
clairement la structure des données,
particulièrement en cas de profonde
imbrication. L’exemple de la figure 4 a
des structures imbriquées à  trois niveaux
de profondeur. C’est un peu le
moyen de coder des tableaux multidimensionnels
en RPG.
Arrêtons-nous sur une autre considération
de style dans cet exemple. Les
structures de données PartInfo et
OrderDetail ne sont utilisées que
comme des sous-champs LIKEDS dans
d’autres structures de données.
Comme nous n’utilisons pas ces structures
de données elles-mêmes pour
contenir des données, et parce que
nous n’avons pas réellement besoin de stockage pour ces structures de données,
elles sont déclarées comme des
structures de données Based. La variable
de pointeur Template n’est utilisée
nulle part comme un pointeur. Elle
indique simplement que la structure
des données est une définition modèle
de structure.
Parmi les autres améliorations de la
structure des données de la V5R2, on
trouve le mot-clé EXTNAME, amélioré
par un paramètre supplémentaire qui
indique quel type de sous-champs il
faut inclure dans la structure de données
décrite en externe. Si *Input est
codé comme le paramètre final, seuls
les champs acceptant l’entrée dans
l’enregistrement sont inclus. *Output
indique d’inclure seulement des
champs permettant la sortie, *All inclut
tous les champs et *Key n’inclut
que les champs clés dans l’enregistrement.
*Key est particulièrement utile
conjointement à  la fonction %KDS (décrite
plus loin).
On gagne un nouveau mot-clé
carte D (D-spec). Le mot-clé LIKEREC
est semblable à  LIKEDS, mais au lieu de définir une structure de données
comme une autre structure de données,
LIKEREC la définit comme un
format d’enregistrement. Autrement
dit, les sous-champs de la structure de
données sont les champs indiqués du
nom de format d’enregistrement spécifié.
Un second paramètre facultatif indique
quels champs il faut inclure :
*Input, *Output, *All ou *Key. Vous
pouvez coder le mot-clé LIKEREC partout
où vous pouvez coder LIKEDS, y
compris dans les sous-champs de la
structure de données.
Enfin le mot-clé DTAARA donne
désormais la possibilité de spécifier le
nom d’une variable contenant le nom
de zone de données réel. Si, par
exemple, DTAARA(*Var:Name) est
codé, la variable Name contient le nom
réel de la zone de données à  l’exécution.
Le nom prend de la signification
quand l’opération In est effectuée.

Téléchargez gratuitement cette ressource

HP Elite Slice G2 : optimisez la collaboration… et votre budget !

HP Elite Slice G2 : optimisez la collaboration… et votre budget !

Téléchargez cette étude Forrester et découvrez comment booster la collaboration tout en dégageant un excellent R.O.I grâce au système de vidéoconférence HP Elite Slice G2 avec Microsoft Teams !

Tech - Par iTPro - Publié le 24 juin 2010