On utilise de moins en moins PDM et SEU, pour le remplacer par du RDI ou Visual studio code, ce qui est le sens de l’histoire, mais cette commande peut vous aider, surtout si vous ne disposez pas d’outils d’analyse (Arcad, X-Analysis, Grefer, etc…)
Cette commande permet de faire un FNDSTRPDM (option 25 dans la gestion des membres) sur une liste de fichiers sources, FNDSTRPDM étant limité à un seul fichier source par recherche
Vous devez définir la liste des fichiers à analyser
Pour ceci, vous avez un fichier modèle QAUOSR2 dans la bibliothèque QPDA
Il est conseillé de le dupliquer sous un nouveau nom dans votre bibliothèque
C’est un fichier source que vous pouvez éditer facilement par SEU, RDI, VSCODE, ou SQL
Il est composé de 3 zones de 10 caractères
Exemple :
Notre fichier s’appellera souvent FNDSTRPDM2 membre FNDSTRPDM2 et on choisira une bibliothèque.
£lib £file £member
GDATA QCLSRC *ALL
GDATA QRPGLESRC *ALL
GDATA QDDSSRC *ALL
GDATA QCMDSRC *ALL
GDATA QSQLSRC M*
Dans les membres vous pouvez indiquer *ALL ou un nom générique
Vous pouvez ensuite lancer la commande de recherche avec le paramétrage que vous désirez
Exemple
FNDSTRPDM2 STRING(DCL)
FILE(GDATA/FNDSTRPDM2)
MBR(FNDSTRPDM2)
OPTION(NONE) PRTMBRLIST(YES)
Ici on a demandé une liste que vous retrouvez dans votre spool, c’est un fichier QPUOPRTF, il y en a un par fichier source
Exemple :
Nb d'occurrences . . : 102
Création Dernière modif
Membre Type Date Date Heure Enreg
---------- ---------- -------- -------- -------- -------
AAAA CLLE 01/07/21 15/01/24 15:28:17 0000006
AAAA2 CLLE 10/01/24 16/09/23 10:25:24 0000009
AAA1 CLLE 16/05/23 06/06/23 10:24:58 0000017
AADB CLLE 02/01/24 02/01/24 10:59:24 0000005
AAPF2CL CLLE 03/07/23 03/07/23 13:53:03 0000008
Vous pouvez également demandé la liste des enregistrements comportant votre chaine, PRTRCDS(*ALL) vous obtenez également à une autre liste dans vos spools
Exemple :
Membre . . . . . . . : AAAA2
Type . . . . . . . . : CLLE
Texte . . . . . . . . : Liste des touches de fonction d'un RPG
Longueur d'enreg . . : 92
SEQNBR *...+....1....+....2....+....3....+....4....+....5....+....6....+...
DCL
4 DCL VAR(&TXT) TYPE(*CHAR) LEN(80)
DCL
5 DCL VAR(&id ) TYPE(*CHAR) LEN(7)
Nombre d'enregistrements explorés . . . . . . . . : 9
Nombre d'enregistrements à trouver . . . . . . . : *ALL
Nombre d'enregistrements trouvés . . . . . . . . : 2
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ F I N D U M E M B R E
On rencontre 2 usages principalement
Pour rechercher dans tous les sources d’une bibliothèque
£lib £file £member
GDATA QCLSRC *ALL
GDATA QRPGLESRC *ALL
GDATA QDDSSRC *ALL
GDATA QCMDSRC *ALL
Pour rechercher dans tous les sources RPGLE de plusieurs bibliothèques
£lib £file £member
GDATA QRPGLESRC *ALL
GDATA1 QRPGLESRC *ALL
GDATA2 QRPGLESRC *ALL
GDATA3 QRPGLESRC *ALL
Remarques :
Vous pouvez facilement générer cette liste dynamiquement si vous le désirez en utilisant SQL et les vues de QSYS2.
Exemple :
INSERT INTO GDATA/FNDSTRPDM2 VALUES((select max(srcseq) + 1 from
gdata/fndstrpdm2), 0, ‘Biblio ‘ concat ‘ ‘ concat
‘Fichier ‘ concat ‘ ‘ concat ‘Membre ‘)
Il existe d’autres solutions pour scanner vos fichier sources, mais celle ci est simple à mettre à œuvre, et vous avez de grande chance d’avoir QPDA sur vos machines.