
|
**********************************************************************
* 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
|