Modèle de trigger (RPG-IV)

BoTTom |
      *=========== définition des paramètres recus =========================
     Ddata             DS
     D  fichier                      10
     D  biblio                       10
     D  membre                       10
     D  evenem                        1
     D  moment                        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  variable                   9900A
     Dparam            S           9999
     Dlgparam          S              9B 0
     Ddep              S              9B 0
     Denregav        E DS                  EXTNAME(fichierp1) PREFIX(av)
     Denregap        E DS                  EXTNAME(fichierp1) PREFIX(ap)
      *=========== 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')
     D ID              S              7    INZ('CPF9898')
     D MSGTXT          S             50    INZ('<-- texte de votre message -->')
     D LENTXT          S              9B 0 INZ(50)
     D MSGTYP          S             10
     D PGMQ            S             10    INZ('*PGMBDY')
     D STACK           S              9B 0


|
     D KEY             S              9B 0
      *=========== DEBUT DU PROGRAMME ======================================
     C     *entry        plist
     C                   parm                    param
     C                   parm                    lgparam
      *
      * mise en place du paramètre reçu
      *
     C                   eval      data = %subst(param:1:lgparam)
      *
      * mise en place du buffer avant
      *
     C                   if        dep_enrav <> 0
     C                   eval      dep = dep_enrav + 1
     C                   eval      enregav = %subst(data:dep:lg_enrav)
     C                   endif
      *
      * mise en place du buffer après
      *
     C                   if        dep_enrap <> 0
     C                   eval      dep = dep_enrap + 1
     C                   eval      enregap = %subst(data:dep:lg_enrap)
     C                   endif
      * placez ici votre test
     C*                  if        <--------------->
     C                   exsr      env_msg
     C*                  endif
     C                   eval      *inlr = *on
      *
     C     env_msg       begsr
      *
      * envoi d'un message diagnostic au pgm applicatif
      *
     C                   CALL      'QMHSNDPM'
     C                   PARM      'CPF9898'     ID                7
     C                   PARM                    MSGFL
     C                   PARM                    MSGTXT
     C                   PARM                    LENTXT
     C                   PARM      '*DIAG'       MSGTYP
     C                   PARM                    PGMQ
     C                   PARM      2             STACK
     C                   PARM                    KEY
     C                   PARM                    ERRDS
      *


|
      * envoi d'un message escape( erreur) au système
      *
     C                   CALL      'QMHSNDPM'
     C                   PARM      'CPF9898'     ID                7
     C                   PARM                    MSGFL
     C                   PARM                    MSGTXT
     C                   PARM                    LENTXT
     C                   PARM      '*ESCAPE'     MSGTYP
     C                   PARM                    PGMQ
     C                   PARM      1             STACK
     C                   PARM                    KEY
     C                   PARM                    ERRDS
     C                   endsr




©AF400