Accueil du site > Les articles > Envoi de message temporaire
Version à imprimer Enregistrer au format PDF

Envoi de message temporaire

mercredi 11 août 2004, par Grégory Jarrige Visites  1458 Première mise en ligne le vendredi 7 novembre 2003.

Si vous cherchez une solution simple et pratique pour envoyer des messages d’avertissement dans le but de faire patienter l’utilisateur lorsqu’un calcul de tableau ou un chargement de sous-fichier risque d’être un peu long, il existe une commande AS/400 qui peut vous intéresser, c’est la commande SNDPGMMSG.

Cette solution est parfaitement adaptée à des programmes RPG/400 ou ADELIA. A noter que cette solution ne peut être intégrée que dans des programmes ADELIA développés pour AS/400 (et non en client-serveur).

Avantage : cette solution peut être intégrée à n’importe quel endroit de votre source RPG ou ADELIA (pavé INITIALISATION, VERIFICATION ou VALIDATION) sans que vous ayez besoin de vous préoccuper de son exécution.


Comment ça marche ?

Pour commencer, créer un CL appelé CSNMSG, CL qui reçoit en paramètre une chaîne de 80 caractères. Le source de ce CL est le suivant :

PGM        PARM(&MSG)
DCL        VAR(&MSG) TYPE(*CHAR) LEN(80)
SNDPGMMSG  MSGID(CPF9897) MSGF(QSYS/QCPFMSG) +
          MSGDTA(&MSG) TOPGMQ(*EXT) MSGTYPE(*STATUS)
ENDPGM

Ensuite, créer une macro-instruction sous ADELIA appelée &TEMPORISATION qui reçoit en paramètre une chaîne de 80 caractères. Elle se contente d’appeler CSNMSG en lui passant en paramètre le message à envoyer sur l’écran de l’utilisateur.

Utilisation (dans ADELIA) ?

Une bonne solution si vous risquez d’avoir un chargement de sous-fichier un peu long consiste à placer votre macro juste avant le pavé de chargement du sous-fichier, à l’intérieur du pavé INITIALISATION. De même, si vous avez un calcul ou une mise à jour dans le pavé VALIDATION qui risque de durer quelques secondes (suffisamment pour que l’utilisateur ait le temps de bâiller) placez-y votre macro &TEMPORISATION. Rien d’autre à faire...