> Tech > Identifier l’origine d’un programme CL appelé.

Identifier l’origine d’un programme CL appelé.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010

Plus de 99,9 % de mes appels de programmes sont non qualifiés, comptant sur la liste de bibliothèques. Mais, dans quelques rares cas, je veux savoir d'où le programme est appelé.
Supposons, par exemple, que j'ai différents environnements, chacun avec sa propre bibliothèque « données + programmes spéciaux » et

Identifier l’origine d’un programme CL appelé.

certaines
bibliothèques de programmes communes.
La sélection de l’environnement
devrait être faite par le programme
initial de votre profil
utilisateur (sur le paramètre INLPGM
sur l’objet profil utilisateur) ou sur le
paramètre INLGRPPGM de la commande
TFRGRPJOB 5Transfer to
Group Job). Je pourrais écrire un programme
individuel pour chaque environnement,
mais il est plus élégant
d’utiliser des copies identiques du programme
dans chaque bibliothèque
d’environnement puis de laisser le programme
ajouter la bibliothèque d’environnement
d’abord à  la liste de bibliothèques.
Mais ensuite, comment savoir
à  partir de quelle bibliothèque le
programme est appelé ? Voici une solution :

OVRPRTF    FILE(QPPGMDMP)
TOFILE(QSYS/QDARCDSP)
/* An OS/400 randomly chosen Display File
/*
DMPCLPGM
MONMSG MSGID(CPF0570)
/*Will always occur*/
RCVMSG MSGTYPE(*EXCP) RMV(*YES)
MSGDTA(&MSGDTA)
CHGVAR VAR(&RUNFROMLIB)
VALUE(%SST(&MSGDTA 11 10))
DLTOVR FILE(QPPGMDMP)
La première ligne effectue un remplacement
dans un fichier écran, qui
garantit que la deuxième ligne
échouera avec CPF0570. Si l’on exécute
la commande DSPMSGD
CPF0570, on verra que la bibliothèque
du programme CL courant fait partie
des données de messages. C’est ce qui
est extrait dans &RUNFROMLIB aux
lignes 9 et 10. La dernière ligne sert
simplement à  s’assurer que l’on pourra
effectuer un DMPCLPGM réel ultérieurement.

Jan Jorgensen
Programmeur
Odense, Danemark

Téléchargez cette ressource

Microsoft 365 Tenant Resilience

Microsoft 365 Tenant Resilience

Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.

Les plus consultés sur iTPro.fr

A lire aussi sur le site

À la une de la chaîne Tech