********************************************************************** * lit tous les messages de la JOBLOG en commencant par le dernier * * pratique qaund il s'agit d'erreur recue par SQL et non par * le RPG en ayant besoin * ********************************************************************** * API création d'un User Space d QUSCRTUS PR EXTPGM('QUSCRTUS') d 20 const d 10 const d 10i 0 const d 1 const d 10 const d 50 const d 10 const d error likeds(error_codeDS) d ********************************************************************** * API liste des messages de la JOBLOG d QMHLJOBL PR EXTPGM('QMHLJOBL') d 20 const d 8 const d select likeds(message_select) d 10i 0 const d 8 const d error likeds(error_codeDS) d ********************************************************************** * code erreur std pour APis d error_codeDS DS d error_size 10i 0 d error_rt 10I 0 d error_id 7 d error_filler 1 d error_data 50 d ********************************************************************** * paramètre 3 de QMHLJOBL, critères de sélection d message_select DS d message_max 10I 0 inz(9999) d message_sens 10 inz('*PRV') d job_name 10 d job_user 10 |
d job_nbr 6 d job_internal 16 d cle_depart 4 inz(X'FFFFFFFF') * x'FFFFFFFF' = à partir de la fin , x'00000000' = début d unmessage_max 10i 0 inz(256) d unmessage_help 10i 0 inz(256) d zone_offset 10i 0 inz(84) d zone_nbr 10i 0 inz(1) d msgq_offset 10i 0 inz(88) d msgq_lg 10i 0 inz(10) d zone_rt 10i 0 inz(0302) d msgq 10 inz('*') d ********************************************************************** * SDS pour coordonnées du JOB en cours dsystemeDS SDS d SDSjn 10 overlay(systemeDS:244) d SDSju 10 overlay(systemeDS:254) d SDSnb 6 overlay(systemeDS:264) d ********************************************************************** * prototype pour API qui retrouve pointeur de début dQUSPTRUS PR EXTPGM('QUSPTRUS') d space 20 const d ptr * * va contenir l'adresse de début du User Space Dpointeur s * DI s 10i 0 * l'entête Dptrinfos s * DRTVINF ds based(ptrinfos) D offset 10i 0 D taille 10i 0 D nbpostes 10i 0 D lgposte 10i 0 * la liste dptrliste s * DLIST ds based(ptrliste) d msgid 7 overlay(LIST : 17) d msg_lg 10i 0 overlay(List : 109) d msg_txt 128 overlay(LIST : 113) |
*======================================================== dtexte s 128 /free error_size = %size(error_codeDS); // création du *USRSPC QUSCRTUS('JOBLOG QTEMP' : 'JOBLOG' : 9999 : ' ' : '*USE' : 'pour JOBLOG' : '*YES' : error_codeDS); // attribution de valeur à la DS de sélection job_name = SDSjn; job_user = SDSju; job_nbr = SDSnb; //appel de l'API qui retourne tous les messages à partir du plus récent QMHLJOBL('JOBLOG QTEMP' : 'LJOB0100' : message_select: %size(message_select) : 'JSLT0100' : error_codeDS); // lecture du User Space // récupération pointeur de début QUSPTRUS('JOBLOG QTEMP' : pointeur); ptrinfos = pointeur + 124; ptrliste = pointeur + offset; // boucle (nbpostes fois) for i = 1 to nbpostes; // traitement d'un message // à adapter suivant les besoins if msgid = 'CPF????'; texte = %subst(msg_txt:1:msg_lg); // // endif; // poste suivant ? if i < nbpostes; ptrliste = ptrliste + lgposte; endif; endfor; *inLR = *ON; /end-free |