Page 1 sur 1

QSYS2.DATA_AREA_INFO, RPGLE et DSPPGMREF

Posté : jeu. 12 mars 2026, 18:27:17
par aapra
Bonjour,
Dans un SQLRPGLE, je vois que le contenu d'une *dtaara est récupéré via QSYS2.DATA_AREA_INFO.
Et je vois que cette *dtaara n'apparait pas via DSPPGMREF sur le *pgm.

Question : comment récupérer cette dépendance entre la *dtaara et le *pgm dans ce type de cas autrement qu'en analysant le source ? (et via SQL si possible :])

Remarques :
* Je suppose qu'une solution serait de rajouter dans chaque programme un truc comme : "dcl-ds xxx dtaara('xxx');"
* L'utilisation de QSYS2.DATA_AREA_INFO dans mon cas est discutable.
* Je cherche une solution via SQL pour l'utiliser en parallèle de ça : https://www.linkedin.com/pulse/dsppgmre ... -bob-cozzi

Re: QSYS2.DATA_AREA_INFO, RPGLE et DSPPGMREF

Posté : ven. 13 mars 2026, 10:24:52
par Hurri
Bonjour,

Le problème que tu rencontres est simple.
La commande DSPPGMREF va fournir les données concernant ce qui est défini "en dur" dans le programme.

Mais en utilisant une commande SQL pour récupérer les données de la DTAARA, c'est une donnée dynamique qui est utilisée.

Alors oui, si tu veux avoir une référence, le mieux est quelle soit déclarée.
D'ailleurs, çà te permettrait de la charger facilement en ayant sa structure définie de manière centralisée.
Personnellement c'est ce que j'utilise, en couple avec des procédures capables "d'extraire" les éléments, de charger et enregistrer cette Dtaara, tout çà regroupé dans un programme de service. Çà me permet d'y accéder depuis n'importe où, que ce soit des programme sur l'IBM i, des scripts PHP, ou des programmes accédant d'une manière ou d'une autre à la base de données (via procédures et fonctions).