Cette astuce ne remplace pas un outil du marché qui vous offrira beaucoup plus d’opportunités, en terme d’analyses et d’interactions avec d’autres outils de développements de la plateforme IBM i.
Mais il est possible que vous n’ayez pas la chance de posséder un de ces outils, et voici une méthode qui va vous permettre basiquement de trouver ou est utilisée une zone par exemple si vous désirez changer ses attributs.
La méthode utilisée dans notre cas consiste à créer un fichier avec l’intégralité de vos lignes sources, que vous pouvez faire générer chaque nuit par exemple
Pour cela il va falloir d’abord faire liste des membres sources de votre machine
Creation de la table pour votre liste
CREATE TABLE LSTMBRsrc (
LIB CHAR(10) CCSID 297 NOT NULL ,
FILE CHAR(10) CCSID 297 NOT NULL ,
MBR CHAR(10) CCSID 297 NOT NULL ,
TYP CHAR(10) CCSID 297 DEFAULT NULL )
Remplissage de la table, vous pouvez affiner en éliminant des bibliothèques inutilisées.
ici on utilise le fichier de référence du système SYSPARTITIONSTAT en SQL une partition = un membre
insert into lstmbrsrc
SELECT
substr(TABLE_SCHEMA, 1, 10) as lib,
substr(TABLE_NAME, 1, 10) as file,
substr(TABLE_PARTITION, 1, 10) as mbr,
source_type
FROM SYSPARTITIONSTAT WHERE substr(TABLE_SCHEMA, 1, 1) <> »Q » and +
not source_type isnull and NUMBER_ROWS > 0′)
Création de la table résultat
qui aura les informations du sources (srcdta, srcseq, srcdta et du fichier srclib, srcfil, srcmbr, srctyp) , vous pouvez ajouter d’autre zones sur les dates par exemple .
CREATE TABLE LSTSRC (
SRCLIB CHAR(10) CCSID 1147 NOT NULL DEFAULT » ,
SRCFIL CHAR(10) CCSID 1147 NOT NULL DEFAULT » ,
SRCMBR CHAR(10) CCSID 1147 NOT NULL DEFAULT » ,
SRCTYP CHAR(10) CCSID 1147 NOT NULL DEFAULT » ,
SRCSEQ NUMERIC(6, 2) NOT NULL DEFAULT 0 ,
SRCDTA CHAR(100) CCSID 1147 NOT NULL DEFAULT » ,
SRCDAT NUMERIC(6, 0) NOT NULL DEFAULT 0 )
Maintenant, il faut la remplir en lisant le fichiers des membres
Voici en clp un exemple de code, à faire pour chaque membre
Création de l’alias (nécessaire à SQL pour accéder aux données d’un membre)
CHGVAR &REQUETE ( +
‘CREATE ALIAS QTEMP/WLSTMBR FOR’ *BCAT &LIB *TCAT ‘/’ *TCAT &FILE +
*BCAT ‘(‘ *TCAT &MBR *TCAT ‘)’)
RUNSQL SQL(&REQUETE) COMMIT(*NONE)
monmsg sql0000
Remplissage du fichier avec les informations du membre
CHGVAR &REQUETE +
(‘INSERT INTO LSTSRC SELECT »’ *TCAT &LIB *TCAT »’ , »’ *TCAT +
&FILe *TCAT »’ , »’ *TCAT +
&MBR *TCAT »’ , »’ *TCAT +
&typ *TCAT »’ , ‘ BCAT + ‘SRCSEQ , SRCDTA , SRCDAT FROM WLSTMBR’) RUNSQL SQL(&REQUETE) COMMIT(NONE)
monmsg sql0000
Suppression de l’alias
CHGVAR &REQUETE ( +
‘DROP ALIAS QTEMP/WLSTMBR’)
RUNSQL SQL(&REQUETE) COMMIT(*NONE)
monmsg sql0000
Ce traitement est un peu long , il est fréquent d’avoir plusieurs millions d’enregistrements dans votre fichier résultat, attention donc aussi à la place disponible sur votre partition !
Maintenant vous pouvez rechercher une chaine de caractère dans votre fichier exemple un NOM de ZONE.
Dans notre exemple recherche *LDA en majuscule ou minuscule avec création d’un fichier source ici LISTE
create table QTEMP/LISTE as (
SELECT * FROM
lstsrc
WHERE SRCDTA like(‘%*LDA%’)
) with data
Conclusion :
Pensez à faire du ménage dans tout les sources qui ne servent plus.
Si vous n’avez pas les sources vous ne pouvez rien faire mais c’est vrai dans tous les cas.
En cas d’analyse d’impacts vous devrez croiser avec une analyse sur les objets , exemple sortie de dsppgmref
Si vous devez faire de gros changements à effectuer, il est opportun de s’équiper d’un produit qui fera tout ca pour vous .
En attendant d’avoir tout dans l’IFS et de pouvoir tout mettre sous GIT … , c’est le monde d’après .