> 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

Sécuriser Microsoft 365 avec une approche Zero-Trust

Sécuriser Microsoft 365 avec une approche Zero-Trust

Découvrez comment renforcer la cyber-résilience de Microsoft 365 grâce à une approche Zero-Trust, une administration granulaire et une automatisation avancée. La technologie Virtual Tenant de CoreView permet de sécuriser et simplifier la gestion des environnements complexes, tout en complétant vos stratégies IAM, y compris dans les secteurs réglementés.

Les plus consultés sur iTPro.fr

A lire aussi sur le site

À la une de la chaîne Tech