
|
* Exemple de trigger utilisant le paramètre TRGEVENT(*READ) =
* =
* =========== définition des paramètres recus =========================
Ddata DS
D fichier 10
D biblio 10
D membre 10
D event 1
D time 1
D niv_verrou 1
D filler1 3
D ccsid 9B 0
D filler2 8
* enregistrement avant déplacement et longueur
D dep_enrav 9B 0
D lg_enrav 9B 0
* description enregistrement avant déplacement et longueur
D dep_desav 9B 0
D lg_desav 9B 0
* enregistrement après (idem)
D dep_enrap 9B 0
D lg_enrap 9B 0
D dep_desap 9B 0
D lg_desap 9B 0
D filler3 16
D vari 9900A
 
Dparam S 9999
Dlgparam S 9B 0
Ddep S 9B 0
 
**
** placez ici le nom de votre physique ---------!
** v
Denregav E DS EXTNAME(ma_cave) PREFIX(av_)
* =========== variables pour API envoi de messages ===================
D ERRDS DS
D LGDS 1 4B 0 INZ(16)
D LGERR 5 8B 0
D MSGID 9 15
D RESERV 16 16
D MSGFL DS
D MSGF 10 INZ('QCPFMSG')
D MSGL 10 INZ('*LIBL')
|
* =========== API QMHSNDPM (envoi d'un message) =====================
D QMHSNDPM PR EXTPGM('QMHSNDPM')
D mh_id 7 const
D mh_msgf 20 const
D mh_msgtxt 50 const
D mh_msglen 10I 0 const
D mh_msgtyp 10 const
D mh_pgmq 10 const
D mh_stack 10I 0 const
D mh_key 10I 0
D mh_errds like(errds)
*/
*/ placez ici votre message -------------------!
*/ V
D MSGTXT S 50 INZ('ne pas utiliser cette ligne')
D KEY S 10I 0
d today S D
//=========== DEBUT DU PROGRAMME ======================================
C *entry plist
C parm param
C parm lgparam
*/
*/ mise en place du paramètre reçu
*/
/FREE
data = %subst(param:1:lgparam);
//
// mise en place du buffer avant
//
if dep_enrav <> 0;
dep = dep_enrav + 1;
enregav = %subst(data:dep:lg_enrav);
endif;
//
// ici toute lecture d'une ligne ayant date de création > aujourd'hui
// est refusée (saisie de lignes à l'avance par exemple...)
//
/END-FREE
c time today
/FREE
if av_cav_e00001 > today;
exsr env_msg;
endif;
*inlr = *on;
|
 
 
BEGSR env_msg ;
//
// envoi d'un message diagnostique au pgm applicatif (pgm + 2)
//
qmhsndpm ('CPF9898':'QCPFMSG *LIBL':msgtxt: %len(msgtxt) :
'*DIAG' : '*PGMBDY' : 2: key : errds) ;
 
//
// envoi d'un message escape( erreur) au système (pgm + 1)
//
qmhsndpm ('CPF9898':'QCPFMSG *LIBL':msgtxt: %len(msgtxt) :
'*ESCAPE' : '*PGMBDY' : 1: key : errds) ;
 
ENDSR ;
|