Accueil du site > Les articles > Outil de gestion des références croisées en CL et RPG.
Version à imprimer Enregistrer au format PDF

Outil de gestion des références croisées en CL et RPG.

mardi 10 août 2004, par Grégory Jarrige Visites  4289 Première mise en ligne le jeudi 23 octobre 2003.

L’AS/400 recèle des trésors insoupçonnés. La commande DSPPGMREF en est un. Avec cette commande, vous pouvez vous constituer un outil de maintenance extrêmement puissant, et pour pas un rond.


Description de la commande

La commande DSPPGMREF permet de visualiser la liste des objets référencés dans un ou plusieurs programmes. En plus d’afficher et d’imprimer ces informations, il est possible de les envoyer dans un fichier AS/400 qu’il sera possible d’analyser par Query.

Prenons un exemple : on souhaite analyser les références contenues dans le programme IT919UJ de la bibliothèque DEVFIC. Pour cela on saisit la commande DSPPGMREF et on presse la touche F4 pour obtenir un écran que l’on va renseigner comme ci-dessous (les données sont envoyées dans le fichier PGMREF de la bib. DEVFIC) :

                Afficher références programmes (DSPPGMREF)

Indiquez vos choix, puis appuyez sur ENTREE.

Programme  . . . . . . . . . . . IT919UJ       Nom, générique*, *ALL
  Bibliothèque . . . . . . . . .    DEVFIC      Nom, *LIBL, *CURLIB...
Sortie . . . . . . . . . . . . . *OUTFILE      *, *PRINT, *OUTFILE
Type d'objet . . . . . . . . . . *ALL          *ALL, *PGM, *SQLPKG...
             + si autres valeurs
Fichier recevant la sortie . . .   PGMREF        Nom
  Bibliothèque . . . . . . . . .     DEVFIC      Nom, *LIBL, *CURLIB
Options pour membre de sortie:
  Membre recevant la sortie  . .   *FIRST        Nom, *FIRST
  Remplacement ou ajout enregs     *REPLACE      *REPLACE, *ADD

Description du fichier PGMREF :

La description est obtenue au moyen de la commande DESCFIC

Fichier : PGMREF            Bibl. : DEVFIC            Type : PF
Desc.   : Sortie de DSPPGMREF
Format  : QWHDRPPR          Membre : PGMREF
champ. Lg. D. T Description de la zone                  Pos.Buf
====== === == = ====================================== ========
WHLIB   10    A Library                                   1  10
WHPNAM  10    A Program                                  11  20
WHTEXT  50    A Text 'description'                       21  70
WHFNUM   5  0 S Number of objects referenced             71  75
WHDTTM  13    A Retrieval date:  century/date/time       76  88
WHFNAM  11    A Object referenced: 1=*EXPR               89  99
WHLNAM  11    A Library referenced: 1=*EXPR             100 110
WHSNAM  11    A File name in source program: 1=*EXPR    111 121
WHRFNO   3  0 S Number of record formats referenced     122 124
WHFUSG   2  0 S 1=I,2=O,3=I/O,4=U,5=I/U,6=O/U,7=I/O/U,. 125 126
WHRFNM  10    A Record format referenced                127 136
WHRFSN  13    A Format level identifier                 137 149
WHRFFN   5  0 S Number of fields                        150 154
WHOBJT   1    A Object type: F=File, P=Program, D=Data  155 155
WHOTYP  10    A Object type                             156 165
WHSYSN   8    A System Name (Source System, if file is  166 173
WHSPKG   1    A PGM=P, SQLPKG=S, SRVPGM=V, MODULE=M     174 174

Le fichier contient dans la zone WHFNAM la liste des objets (programmes, fichiers, data area, etc...) utilisés par le programme IT919UJ. La zone WHFUSG contient le code usage de l’objet ce qui permet de savoir notamment si un fichier est en mise à jour.

L’intérêt de la commande DSPPGMREF réside aussi dans le fait qu’il est possible de traiter tous les programmes d’une bibliothèque et ainsi de se constituer un référentiel extrêmement complet. Dans ce cas, il va être possible d’effectuer des analyses plus poussées et de connaître, par exemple, la liste de tous les programmes utilisant un objet par une sélection du type WHFNAM = ‘ ???’ (où ??? serait le nom de l’objet dont on souhaite connaître la liste des objets utilisateurs).

De même, on peut connaître la liste des objets utilisés par un programme par une sélection du type WHPNAM = ‘ ???’. En couplant cette sélection avec les zones WHOTYP et WHFUSG on peut connaître, par exemple, la liste des fichiers (zone WHOTYP = ‘F) utilisés par un programme en mise à jour (WHFUSG = ‘4’).

Vous pouvez voir un autre exemple d’application de la commande DSPPGMREF avec l’article présentant un programme d’impression d’arborescence de programmes.