, EXIT PGM sur PWRDWNSYS

Dans les programmes d’exit, il en existe un qui s’exécutera avant un PWRDWNSYS


Pour 2 raisons


-1 Pour faire un contrôle par rapport à une condition particulière de lancement
-2 Pour fermer des applications et valider des informations en cours

Voici un exemple succinct qu’il vous faudra améliorer

Ici on demande juste de valider par un Y que l’IPL est bien voulu

La commande pour ajouter le point d’exit est au début du programme

PGM                                                                    
/* association pour associer le programme */                           
/*ADDEXITPGM EXITPNT(QIBM_QWC_PWRDWNSYS)  */                           
/* FORMAT(PWRD0100)                       */                           
/* PGMNBR(1)                              */                           
/* PGM(GDATA/PPWRDWN)                     */                           
DCL VAR(&RPY) TYPE(*CHAR) LEN(1)                                       
dcl VAR(&USR) TYPE(*CHAR) LEN(10)                                      
Rtvjoba USER(&USR)                                                     
             SNDUSRMSG  MSGID(CPF9897) MSGF(QCPFMSG) +                 
                          MSGDTA('PWRDWNSYS demandé par, ' *BCAT +     
                          &USER *BCAT 'Tapez pour valider.') +         
                          VALUES('Y' 'N') DFT('N') TOUSR(QSYSOPR) +    
                          MSGRPY(&RPY)                               
/* Si non on arrête le travail */                                      
if (&RPY *NE 'Y') then(do) 
             SNDUSRMSG  MSGID(CPF9897) MSGF(QCPFMSG) MSGDTA('****  +   
                          PWRDWNSYS annulé ****') MSGTYPE(*INFO) +     
                          TOUSR(QSYSOPR)                               
              ENDJOB     JOB(*) OPTION(*IMMED)      
ENDDO                                              
 /* Si oui faire les traitements de fermeture    */    
 /*  pour les applications sensibles par exemple */
 /* libérer des unités etc ...                   */  
 endpgm  

Remarque

Vous pouvez tester même le type d’ipl ou la zone de redémarrage en utilisant les paramètres que vous pouvez recevoir dans la zone au format PWRD0100 ou
PWRD0100.
Attention après sa mise en œuvre, il sera appelé à chaque lancement de PWRDWNSYS pour l’enlever

RMVXITPGM EXITPNT(QIBM_QWC_PWRDWNSYS) FORMAT(PWRD0100) PGMNBR(1)

Plus d’informations ici
https://www.ibm.com/docs/en/i/7.4?topic=ssw_ibm_i_74/apis/xpwrdwn.htm