> Tech > Des points de sortie et des programmes de sortie revisités

Des points de sortie et des programmes de sortie revisités

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

Un point de sortie est celui où une application peut éventuellement appeler un programme externe pour lui confier un traitement personnalisé. L’analyseur de commandes i5/OS inclut des points de sortie auxquels vous pouvez accrocher votre propre programme dans la logique de traitement de commandes.

Pour identifier votre programme de sortie et la commande pour laquelle il sera appelé, utilisez la commande Add Exit Program (ADDEXITPGM), en spécifiant le nom de la commande et la bibliothèque pour laquelle ce programme de sortie sera utilisé et le nom et la bibliothèque de votre programme de sortie qui traitera la commande particulière. Quand l’analyseur de commandes reçoit une requête lui demandant d’exécuter une commande, il examine le registre des points de sortie pour voir s’il y en a un d’attribué à la commande demandée.

Dans l’affirmative, il appelle votre programme de sortie, en transmettant les paramètres qui contiennent l’information sur la commande demandée. Après quoi, votre programme de sortie traite cette information et agit en conséquence. Chaque point de sortie a un nom attribué et une interface de point de sortie. L’interface de point de sortie est simplement une liste des paramètres d’entrée et de sortie que l’analyseur de commandes échange avec votre programme de sortie.

Le nom du point de sortie pour le point de sortie de la commande Command Analyzer Change est QIBM_ QCA_CHG_COMMAND. Ce point de sortie intervient avant que l’analyseur de commandes ne sollicite la commande et avant que le programme de contrôle de validité ne soit appelé. Le nom de l’interface de point de sortie pour ce point de sortie est CHGC0100. Cette interface de point de sortie est différente de la plupart, parce que votre programme de sortie n’est pas passé en paramètres séparés mais comme un gros bloc de données.

Votre programme doit analyser syntaxiquement les éléments de données individuels du paramètre CHGC0100. En outre, deux programmes supplémentaires sont passés à votre programme de sortie. Comme avec tous les points de sortie enregistrés, vous pouvez ajouter votre propre programme de points de sortie en utilisant la commande ADDEXITPGM. Dans le cas du point de sortie de la commande change, vous devez spécifier dans le paramètre PGMDTA le nom de la commande et de sa bibliothèque d’appartenance, comme dans l’exemple suivant :

ADDEXITPGM EXITPNT(QIBM_QCA_CHG_COMMAND)
+ FORMAT(CHGC0100) + PGMNBR(1)
+ PGM(MYLIB/WRKJOBEXIT)
+ TEXT(‘Exit program for WRKJOB’)
+ PGMDTA(*JOB 20 ‘WRKJOB QSYS’)

Vous devez spécifier le paramètre PGMDTA avec une longueur de 20, le nom de commande dans les dix premières positions, et la bibliothèque de commandes dans les 10 positions suivantes, comme dans l’exemple. L’analyseur de commandes est conduit à utiliser le programme de sortie WRKJOBEXIT dans la bibliothèque MYLIB chaque fois qu’il est demandé d’exécuter la commande WRKJOB trouvée dans la bibliothèque QSYS. Il y a certaines commandes pour lesquelles les programmes de points de sortie peuvent ne pas être définis. Ce sont les instructions de directive du compilateur CL, les commandes présentes dans les bibliothèques QSYS38, et quelques autres. Voici la liste des commandes pour lesquelles des programmes de sortie peuvent ne pas être enregistrés :

CALL
CALLPRC 
CHGVAR 
CNLRCV 
COPYRIGHT
DCL
DCLF
DO
ENDDO 
ENDPGM 
ENDRCV
GOTO
IF
MONMSG
PGM
RETURN 
RTVxxx 
SNDF
SNDRCVF 
TFRCTL
WAIT

La figure 2 montre un exemple de programme de sortie utilisable pour la commande WRKJOB. Il vérifie si l’utilisateur exécutant la commande WRKJOB a *USER comme classe utilisateur. Si oui, le programme ordonne à l’analyseur de commandes d’exécuter plutôt la commande DSPJOB. Bien que la fonctionnalité de l’exemple soit fort simple, elle traite les parties difficiles de l’écriture de votre programme de sortie de commande CL.

Remarque :
Ce programme est écrit en syntaxe CL pour la V5R2 et antérieures, donc ceux qui ne sont pas encore passés à la V5R3 ou ultérieures peuvent encore l’utiliser. Si vous en êtes à la V5R3 ou version ultérieure, le programme fonctionnera quand même, mais il vaudra mieux mettre à jour la syntaxe pour inclure le type de données integer V5R3

 –  Fin de la 1ère partie –

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.

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