Fil d’Ariane du forum – Vous êtes ici :ForumForums techniques: AS/400Restreindre l'usage du CHGJOB en …
Vous devez vous identifier pour créer des messages et des sujets.

Restreindre l'usage du CHGJOB en V5R2

Via la cde WRKSBMJOB autorisée à nos utilisateurs, je souhaite empêcher la possibilité d'effectuer tous les changements autorisés par la cde CHGJOB.
Je ne peux pas jouer sur les droits spéciaux du profil *OJBCTL obligatoire car imposé par ERP, la duplication de la cde dans une bib spéciale ne fonctionne pas car QSYS est maintenant tjs qualifiée, le changement de cette cde (CHGCMD) est non souhaité car s'imposerait à tous. Je penche donc pour l'ajout d'un exit point. Cela est -il possible ? Comment procéder ?

Merci à tous pour votre aide.

OS/400 V5R2 iseries

Bonjour,
A ma connaissance, il n'existe pas de point EXIT pour gérer la commande CHGJOB.

En fait, il existe un point d'exit qui se nomme QIBM_QCA_CHG_COMMAND. Il permet de "reprendre la main" sur une commande particulière. Dans ton cas, il s'agirait de la commande CHGJOB (ou WRKJOB ?).

Le programme utilisateur associé à ce point d'exit est appelé chaque fois que la commande CHGJOB est passée. Il faut bien comprendre que tous les utilisateurs sans exception passeraient par le programme d'exit chaque fois que la commande CHGJOB serait passée. Il faut également savoir que l'exécution du programme se produit avant l'analyseur de comamnde (QCMD) et le cas échéant avant le programme de contrôle de validité (paramètre VLDCKR) associé à la commande

On pourrait donc écrire un programme -- en CL ou autre langage -- qui empêcherait, modifierait ou bloquerait l'action de cette commande. Cependant, mettre au point un tel programme n'est pas un travail fait pour les âmes sensibles. En effet, tous les paramètres de la commande sont regroupés dans une chaîne caractère qu'il faut analyser pour retrouver les infos.

A priori, d'après ce que je comprends, tu n'aurais pas besoin d'analyser cette chaîne puisque tu veux juste bloquer la ou les actions du CHGJOB à certains utilisateurs. Il te suffirait de récupérer le nom du user (qui pourrait être dans une table) et de contrôler s'il est autorisé ou non au CHGJOB. Si non autorisé, on pourrait changer la commande CHGJOB par DSPJOB, si bien que l'utilisateur concerné verrait les paramètres du job mais ne pourrait pas changer les paramètres.

Voici un lien qui t'intéressera certainement; c'est un bon exemple un peu ancien certes! mais qui a le mérite de montrer comment insérer un programme d'exit pour la commande WRKJOB : CLIQUER ICI

Toutefois, comme la plupart des commandes IBM n'ont pas de programme de contrôle de validité (et c'est le cas de la commande CHGJOB), il y a encore la solution d'en écrire un et de l'accrocher ensuite à la commande. Je ne dis pas que ce serait plus simple à faire que le programme d'exit compte tenu que la commande CHGJOB a beaucoup de paramètres et que ce n'est pas particulièrement facile de déclarer et passer ces paramètres au programme de contrôle de validité, mais il n'en reste pas moins que c'est une solution envisageable.

Tiens-nous au courant !

Bonjour,

J'ai lu cette vieille discussion, ainsi que d'autres qui traitent également des exit point.
Pour ma part, je souhaite empecher l'utilisation de CHGSPLF ou CHGOUTQ à certains utilisateurs.

Le problème est que la page que tu indiques Philippe dans plusieurs de tes posts :
CLIQUER ICI

n'est plus bonne, semble-t-il.

En revanche, ce lien-ci qui est l'exemple d'un exit point sur la cde RSTOBJ, fonctionner et est bien expliqué :

CLIQUER ICI

Le problème est qu'il indique comment simplement intercepter la cde RSTOBJ pour alerter de son utilisation via des breaks messages à une certaine MSGQ (ou quelque chose du genre), mais pas comment faire en sorte (ce qui est mon cas) que le programme appelé par l'exit point EMPECHE l'appel à la commande en question, suivant le user détecté dans les paramètres recus.

Dans cet exemple , à quel endroit du programme devrais-je agir, et comment ?

Merci !

Ca y est, je crois que j'ai trouvé.

J'aurais du m'en douter, mais le lien que je cherche est un "mix" des 2 liens , à savoir :

CLIQUER ICI

Je regarde ce que je peux en faire et vous retiens au courant.

Tom,

Veux-tu de mon aide ou peux-tu t'en sortir tout seul ?

Pour Mateo : Le droit *JOBCTL donne le droit de modifier les travaux des autres.
Si tes utilisateurs n'ont pas le droit *ALLOBJ, tu peux changer la commande CHGJOB de QSYS avec un EDTOBJAUT QSYS/CHGJOB et interdire la commande pour certains utilisateurs. Vérifie quand même ...

Pour Tom : Même chose avec EDTOBJAUT QSYS/CHGSPLF

GAPIII : tous nos utilisateurs sont dans un profil de groupe (GRPPRF) qui a les droits maximum, et en OWNER = le profil de groupe.
Ceci est imposé par notre ERP.

Donc pas le choix dixit Point Service : obligé de passer par un exit point.

Philippe : les exemples que je cite dans cette discussion (cf liens url) sont nickels, et on a pû créer le exit point + le programme appelé pour controler le DLTSPLF (et non le CHGSPLF, pardon), et effectuer les tests qu'on souhaitait dans le programme, afin d'autoriser ou non le DLTSPLF suvant le user, le nom du spoule, etc....

Ca marche bien, on maitrise.

On s'attaque désormais au CHGOUTQ, qu'on veut aussi brider.

Merci.