On a parfois besoin d’envoyer pour différentes raisons des messages en RPGLE
Voici un tableau comparatif des solutions existantes :

Conclusions
Pour un développement moderne sur IBM i 7.5 ou plus voici nos préconisations :
SND-MSG pour les messages applicatifs en RPGLE (notamment *ESCAPE, *DIAG, *STATUS) , pour du SQLRPGLE il remplace avantageusement le dsply
QSYS2.SEND_MESSAGE lorsqu’on est principalement en SQL ou SQLRPGLE, il permet par exemple de choisir une file de messages
QSYS2.WRITE pour remplacer les DSPLY de débogage par des traces propres dans la joblog
QMHSNDPM pour les développements avancés , par exemple pour échanger vers des files de messages programmes
Remarques
Pour des actions particulières, par exemple refus de trigger, erreur de données dans un cgi, il peut être plus judicieux de créer un fichier de log.
Il devra contenir les informations sur la nature de l’erreur et le contexte d’exécution à minima user, job, date heure, programme

