
|
* variable retour pour le format RTVM0300
Dmessage_rt DS 32767
D byte_retour 10I 0
D byte_dispo 10I 0
D msgid_rt 7 overlay(message_rt : 27)
D msg_offset 10I 0 overlay(message_rt : 65)
D msg_retour 10I 0 overlay(message_rt : *next)
D msg_dispo 10I 0 overlay(message_rt : *next)
D msg2_offset 10I 0 overlay(message_rt : 77)
D msg2_retour 10I 0 overlay(message_rt : *next)
D msg2_dispo 10I 0 overlay(message_rt : *next)
D data 9999
 
d msg1 S 256
d msg2 S 9000
 
* divers paramètres
Dmessage_rt_lg S 10I 0 inz(%size(message_rt))
Dformat S 8 inz('RTVM0300')
dmsgid S 7
dmsgf S 20 inz('QCPFMSG QSYS')
dmsgdta S 1
dmsgdta_lg S 10I 0 inz(0)
dremplace_var S 10 inz('*NO')
dremplace_spc S 10 inz('*NO')
 
Derror_code DS
D err_lg 10I 0 inz(%size(error_code))
D err_retour 10I 0
D err_filler 1
D err_msgid 7
 
Doption S 10 inz('*FIRST')
Dmsg_ccsid S 10I 0 inz(0)
Ddta_ccsid S 10I 0 inz(0)
 
* prototype d'appel à l'API
Drtvmsg PR EXTPGM('QMHRTVM')
D 9999
D 10I 0
D 8
d 7
d 20
d 1
|
d 10I 0 d 10 d 10 D 16 D 10 D 10I 0 D 10I 0 * on recoit msgf et bibliothèque en paramètre C *entry plist C parm p_msgf 10 C parm p_msgfl 10 /free msgf = p_msgf + p_msgfl; exsr lecture; option = '*NEXT'; dow byte_dispo > 0;   if msg_offset > 0; msg1 = %subst(message_rt : msg_offset + 1 : msg_retour); else; msg1 = *blanks; endif; if msg2_offset > 0; msg2 = %subst(message_rt : msg2_offset + 1 : msg2_retour); else; msg2 = *blanks; endif;   // positionnement sir le message suivant msgid = msgid_rt; exsr lecture; enddo; *inlr = *on;   // S-PGM   // appel à l'API. begsr lecture; rtvmsg(message_rt : message_rt_lg : format : msgid : msgf : msgdta : msgdta_lg : remplace_var : remplace_spc : error_code : option : msg_ccsid : dta_ccsid); endsr; /end-free |