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
Microsoft 365 : 5 erreurs de sécurité
A l’heure où les données des solutions Microsoft 365 sont devenues indispensables au bon fonctionnement de l’entreprise, êtes-vous certain de pouvoir compter sur votre plan de sécurité des données et de sauvegarde des identités ? Découvrez le Top 5 des erreurs à ne pas commettre et les meilleures pratiques recommandées par les Experts DIB France.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Plus de femmes dirigeantes dans la tech pour la culture d’entreprise et l’inclusion
- Agents IA : de l’expérimentation à la gouvernance, le nouveau rôle des CTO
- Alerte sur les escroqueries reposant sur les deepfakes
- Explosion des interactions vocales avec l’IA générative d’ici 2028
- Les entreprises doivent revoir leur stratégie de résilience des données en profondeur
