> Tech > Donner du sens aux matrices d’éxécution en RPG

Donner du sens aux matrices d’éxécution en RPG

Tech - Par Julian Monypenny - Publié le 24 juin 2010
email

Au cours de ces dernières années, le traitement des matrices RPG a beaucoup changé. Les nouveautés affectent surtout la manière de les définir et de les traiter. Il existe beaucoup de variantes de l’ancienne matrice d’exécution. Outre les simples matrices de champs, on peut définir des matrices de structures de données, des matrices qualifiées, des matrices superposées, des matrices multidimensionnelles, des matrices allouées dynamiquement, et des structures de données à occurrences multiples. Chaque genre de matrice a ses forces et ses faiblesses : quelque-unes peuvent être grandes, d’autres ne peuvent être que petites. Certaines ont besoin d’une initialisation explicite, d’autres pas. Telles peuvent être triées, telles autres ne le peuvent pas.Cet article donne du sens aux matrices d’exécution. J’explique comment définir et initialiser chaque type de matrice, accéder aux éléments, trier des matrices et consulter les éléments. Pour approfondir certaines techniques de coding spécifiques, voir l’encadré « 7 conseils principaux sur les matrices »). Mais, commençons par revoir quelques principes de base sur les matrices.

Donner du sens aux matrices d’éxécution en RPG

Une matrice est un ensemble d’éléments.

Ces derniers partagent une définition de données commune, mais chaque élément a une valeur discrète. Une matrice peut contenir jusqu’à 32 767 éléments, chacun d’une longueur maximale de 65 535 octets. Les matrices sont codées dans les D-specs comme des champs autonomes ou comme des sous-champs de structures de données. Le mot-clé DIM définit le nombre d’éléments présents dans une matrice. Les matrices autonomes sont limitées par l’allocation de stockage d’un programme de 16 776 704 octets. Les matrices de sous-champs sont limitées par l’allocation de stockage d’une structure de données : 9 999 999 octets pour une structure de données non nommée ou 65 535 octets pour une structure de données nommée.

Vous traitez les matrices dans les specs en format libre de vos programmes. Pour accéder à un élément de matrice, utilisez un entier comme index. Pour accéder à tous les éléments dans la matrice, spécifiez un astérisque comme index. Vous pouvez utiliser les fonctions intégrées et les codes opérations suivants avec les matrices :

• %ELEM renvoie le nombre d’éléments présents dans une matrice.
• %LEN renvoie la longueur d’un élément de matrice.
• %SIZE renvoie la taille d’un élément de matrice.
• %LOOKUP, %LOOKUPLT, %LOOKUPLE, %LOOKUPPGT et %LOOKUPGE recherchent un élément correspondant dans une matrice.
• %SUBARY extrait un sous-ensemble d’une matrice (disponible avec V5R3).
• %XFOOT additionne une matrice numérique.
• SORTA trie une matrice.

Plus loin, nous verrons des exemples des différents types de matrices en utilisant les définitions suivantes :

d idx s 101 0
d item ds qualified
d id 101 0
d desc 30

IDX définit un index de matrice comme un entier à 10 chiffres. La structure de données ITEM définit un ID et une description d’item sur lesquels s’appuieront les définitions de matrices.

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez les dernières tendances et solutions IT autour des univers de Poste de travail, Affichage et Collaboration, Impression et Infrastructure, et notre nouveau dossier thématique sur l’éco-conception et les bonnes pratiques à adopter pour réduire votre impact environnemental.

Tech - Par Julian Monypenny - Publié le 24 juin 2010