Envoyer un msg en break à partir d'un batch
 D*--------------------------------------------------------
     D* Envoyer un message a un utilisateur en break
     D*--------------------------------------------------------
     D* définition de l'appel d'un programme externe
     D SndMsg          PR                  ExtPgm('QEZSNDMG')
     D   pMsgTyp                     10
     D   pDelivery                   10
     D   pMsgTxt                    494    Options(*VarSize)
     D   pMsgLen                     10I 0
     D   pUsers                      10    Dim(299)
     D   pNbrUsers                   10I 0
     D   pMsgSent                    10I 0
     D   pFtnRqs                     10I 0
     D   pErrDta                    256    Options(*VarSize)
     D   pShwSnd                      1
     D   pMsgQ                       20
     D   pNamTyp                      4
     D* définition de la stucture de l'erreur
     D#ErrCdeDS        DS
     D  #ErrSiz                      10I 0 INZ(256)
     D  #ErrLen                      10I 0 INZ(0)
     D  #ErrMic                       7
     D  #ErrNbr                       1
     D  #ErrDta                     240
     D* structure des données à fournir
     D#MsgDtaDS        DS
     D #MsgTyp                       10    Inz('*INFO')
     D #Delivery                     10    Inz('*BREAK')
     D #MsgTxt                      494    Inz(' ')
     D #MsgLen                       10I 0 Inz(494)
     D #Users                       299    Dim(10)  Inz(' ')
     D #NbrUsers                     10I 0 Inz(1)
     D #MsgSent                      10I 0 Inz(0)
     D #FtnRqs                       10I 0 Inz(0)
     D #ShwSnd                        1    Inz('N')
     D #MsgQ                         20    Inz(' ')
     D #NamTyp                        4    Inz('*USR')
     D* définition des paramètres
     C     *entry        plist
     C                   parm                    @user            10
     C                   parm                    @msg            494
     C*
     C                   Eval      #Users(1) = @user
     C                   Eval      #MsgTxt = @msg
     C*
     C                   Callp     SndMsg(#MsgTyp:#Delivery:#MsgTxt:            |
     C                                    #MsgLen:#Users:#NbrUsers:#MsgSent:    |
     C                                    #FtnRqs:#ErrCdeDS:#ShwSnd:#MsgQ:      |
     C                                    #NamTyp)                              |
     C*                                                                         |
     C                   Eval      *inlr = *on
     C                   Return

pour l'utiliser

le compiler et puis faire un call monpgm parm('user' 'texte')