h dftactgrp(*no) actgrp(*CALLER) bnddir('QC2LE') *--------------------------------------------------------------- * David Malle * Objet : Gestion des ereurs * * DumpText : Code erreur *--------------------------------------------------------------------------------------------- * ERRHDLR - Gestion des erreurs *--------------------------------------------------------------------------------------------- D EntryParms PR extpgm('ERRHDLR') d DumpText 12 D EntryParms PI d DumpText 12 *--------------------------------------------------------------------------------------------- * QMHSNDPM - Programme envoi de message *--------------------------------------------------------------------------------------------- D QMHSNDPM PR extpgm('QMHSNDPM') D MessageId 7 const D MessageFile 20 const D MessageData 512 const options(*varsize) D MessageDataL 9b 0 const D MessageType 10 const D CallStkEntry 128 const options(*varsize) D CallStkCount 9b 0 const D MessageKey 4 const D ApiError 120 options(*varsize) *‚DS pour API erreur D ApiError ds D ApiErrLP 9b 0 inz(%len(Apierror)) D ApiErrLA 9b 0 inz(0) D ApiErrMsg 7 D 1 D ApiErrDta 104 *‚GetErrNo : Get error number *‚extern int * __errno(void); D GetErrNo Pr * ExtProc('__errno') *‚StrError : Get error text *‚char *strerror(int errnum); D StrError Pr * ExtProc('strerror') D 10I 0 Value *‚Error number information d ErrNo S 10I 0 Based(ErrNop) d ErrNop S * Inz d ErrMsg S 60A Based(ErrMsgp) d ErrMsgp S * Inz /free ErrNop = GetErrNo; ErrMsgp = StrError(ErrNo); ApiErrDta = %trimr(Dumptext) + '-' + %trim(%char(ErrNo)) + '-' + %str(ErrMsgp); QMHSNDPM ('CPF9898':'QCPFMSG QSYS ':ApiErrDta: %len(%trim(ApiErrDta)):'*ESCAPE':'*CTLBDY':1:' ': ApiError); *inlr = *on; /end-free