
|
*=========== définition des paramètres recus ========================= Dptr s * Ddata DS based(ptr) 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 des zones nulles avant (déplacement et longueur) * il y a un octet par zone dans l'enregistrement * contenant 0 (la zone est significative) * 1 (elle est nulle) D dep_desav 9B 0 D lg_desav 9B 0 * enregistrement après (idem) D dep_enrap 9B 0 D lg_enrap 9B 0 * zones nulles 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 Dprtav s * Denregav E DS EXTNAME(db2nullpf) PREFIX(av) D based(ptrav) Dprtap s * Denregap E DS EXTNAME(db2nullpf) PREFIX(ap) D based(ptrap) dprtnav s * dnullav ds based(ptrnav) D codart_nav 1 D libart_nav 1 D datcrt_nav 1 D prix_nav 1 |
dprtnap s *
dnullap ds based(ptrnap)
D codart_nap 1
D libart_nap 1
D datcrt_nap 1
D prix_nap 1
*=========== 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('artcile invalide')
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 ptr = %addr(param)
*
* mise en place du buffer avant
*
C if dep_enrav <> 0
C eval ptrav = ptr + dep_enrav
C endif
C if dep_desav <> 0
C eval ptrnav = ptr + dep_desav
C endif
*
* mise en place du buffer après
*
C if dep_enrap <> 0
C eval ptrap = ptr + dep_enrap
|
C endif C if dep_desap <> 0 C eval ptrnap = ptr + dep_desap C endif * si libart est à blanc alors ==> valeur nulle c if aplibart = *blank c eval libart_nap = '1' c endif * vérification du prix (doit être positif) C if apprix <= 0 C exsr env_msg C endif * mettre date du jour dans DATCRT c time datcrt C return * 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 |