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

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

Tech - Par Renaud ROSSET - 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 cette ressource

Guide de technologie 5G pour l’entreprise

Guide de technologie 5G pour l’entreprise

Pourquoi la 5G est-elle faite pour votre entreprise ? La 5G peut améliorer la vitesse, la fiabilité et la capacité de votre réseau, permettant ainsi une meilleure collaboration, une productivité accrue et une prise de décision plus rapide. Notre livre blanc " The Big Book of Enterprise 5G" vous fournit les informations stratégiques dont vous avez besoin pour prendre des décisions éclairées et préparer votre entreprise à prospérer dans l'ère de la 5G. Cradlepoint, part of Ericsson est le leader mondial des solutions de réseau sans fil 4G LTE et 5G fournies via le cloud. Connectez vos employés, lieux et objets avec la 4G LTE et la 5G pour un WAN sans fil d'entreprise.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010