Cours messages 2 (envoyer)

BoTTom |    Changer de couleur
 
3 ENVOI DE MESSAGES.
--------------------
 
 Pour envoyer un message il faudra au moins indiquer, le texte du
 message, son type et la msgq destinatrice.
 
 Il existe 4 commandes pour envoyer des messages: - SNDMSG
 
                                                  - SNDBRKMSG
 
                                                  - SNDUSRMSG
 
                                                  - SNDPGMMSG
 
 
 
 
 
 
 
 


|    Changer de couleur
 
3.1. SNDMSG.
------------
 
  Cette commande permet d'envoyer uniquement des messages impromptus
  avec 2 types de messages, d'information *INFO ou d'interrogation *INQ
  à des msgq écrans, utilisateurs ou de l'opérateur QSYSOPR.
  Les messages *INFO peuvent être envoyés à plusieurs msgq, par contre
  ceux *INQ ne peuvent être envoyés qu'à une seule msgq.
 
            SNDMSG  MSG(texte du message)
 
                    TOMSGQ(nom de la msgq destinatrice)
 
                    MSGTYPE(type du message *INFO ou *INQ)
 
                    RPYMSGQ(nom de la msgq qui recevra la réponse
                            d'1 message *INQ, par défaut celle de l'écran)
 
 
 
 


|    Changer de couleur
 
3.2. SNDBRKMSG.
---------------
 
  Cette commande permet d'envoyer uniquement des messages impromptus
  avec 2 types de messages, d'information *INFO ou d'interrogation *INQ
  à des msgq écrans.
  Les messages *INFO et *INQ peuvent être envoyés à plusieurs msgq.
 
  L'envoi d'un message à un écran provoquera l'arrêt du travail
  en cours et la visualisation de ce message. (il force la
  délivrance en break du message).
 
         SNDBRKMSG  MSG(texte du message)
 
                    TOMSGQ(nom de la msgq destinatrice, par défaut
                           *ALLWS tous les écrans)
 
                    MSGTYPE(type du message *INFO ou *INQ)
 
                    RPYMSGQ(nom de la msgq qui recevra la réponse
                            d'1 message *INQ, par défaut QSYSOPR)


|    Changer de couleur
 
3.3 SNDUSRMSG.
--------------
 
 Cette commande permet d'envoyer des messages impromptus ou prédéfinis
 à la msgq externe d'un travail, à QSYSOPR ou à une file d'attente de
 messages écrans ou utilisateurs.
 
 2 types de message, information *INFO ou interrogation *INQ.
 
 Le grand intérêt de cette commande est : pour les messages d'interrogation
 nous pouvons récupérer la réponse dans une variable.
 
 ATTENTION CETTE COMMANDE N'EST UTILISABLE QUE DANS UN PROGRAMME CLP.
 
 Format de la commande SNDUSRMSG:
 
           SNDUSRMSG  MSG(texte du message si message impromptu)
 
                      MSGID(clé du message si message prédéfini)
 
                      MSGF(nom du fichier des messages si msg prédéfini)


|    Changer de couleur
                      MSGDTA(si le message prédéfini contient des variables
                             vous indiquerez ici la valeur des variables)
 
                      VALUES(si le message est impromptu et que le type
                             est *INQ vous pouvez indiquer une liste
                             des valeurs de réponse possibles)
 
                      DFT(si le message est impromptu et que le type
                          est *INQ vous pouvez indiquer une réponse par
                          défaut)
 
                      MSGTYPE(type du message *INFO ou *INQ)
 
                      TOMSGQ(nom de la file d'attente de messages
                             3 possibilités:
                                 - * pour un travail interactif le message
                                     sera envoyé à la file d'attente de
                                     messages externes (*EXT).
                                     pour un travail batch le message sera
                                     envoyé à la file d'attente de messages
                                     de l'opérateur QSYSOPR.
                                     (C'est la valeur par défaut.)


|    Changer de couleur
 
                                 - *EXT le message est envoyé à la file
                                        d'attente de message externe.
                                        Si c'est un travail BATCH et le
                                        type du message est *INQ la réponse
                                        par défaut sera attribué à ce
                                        message.
 
                                 - nom d'une file d'attente de message.)
 
                        MSGRPY(nom de la variable (max 132 caractères) qui
                               recevra la réponse, possible si type du
                               message est *INQ)
 
        Précision sur quelques paramètres de cette commande.
 
            MSGDTA : ce paramètre indique le contenu des variables du
                     message. Vous ne pouvez indiquer qu'une seule constante
                     ou variable. Si le message contient plusieurs variables
                     :  mettre bout à bout le contenu des variables dans
                     MSGDTA (une seule variable ou *CAT)
 


|    Changer de couleur
 
                      Ex: Reprenons notre message MSG0001 du fichier des
                          messages MYMSGF et essayons de l'envoyer à l'écran
                          ECRAN00,le nom du travail se trouve dans la
                          variable &JOB,la date dans &DATE et l'heure
                          dans &TIME, le message sera envoyé comme suit:
 
             SNDUSRMSG  MSGID(MSG0001) MSGF(MYMSGF) MSGDTA(&job *cat +
                          &date *cat &time) MSGTYPE(*INFO) +
                          TOMSGQ(ECRAN00)
 
    Un exemple d'utilisation:
 
    Je veux envoyer le message MSG0002 du fichier MYMSGF
    et récupérer la réponse dans &REP puis traiter la réponse.
 
             SNDUSRMSG  MSGID(MSG0002) MSGF(MYMSGF) MSGTYPE(*INQ) +
                          TOMSGQ(*) MSGRPY(&REP)
 
             IF         COND(&REP *EQ 'NON') THEN(GOTO CMDLBL(FIN))
 
 


|    Changer de couleur
 
3.4 SNDPGMMSG.
--------------
 
 Cette commande permet d'envoyer des messages impromptus ou prédéfinis
 à des files d'attente de messages utilisateurs ou écrans ou programmes.
 
 Elle est très utile pour la communication entre programmmes.
 
 ATTENTION CETTE COMMANDE N'EST UTILISABLE QUE DANS UN PROGRAMME EN LC.
 
 
 Format de la commande SNDPGMMSG:
 
             SNDPGMMSG  MSG(texte du message si message impromptu)
 
                        MSGID(clé du message si message prédéfini)
 
                        MSGF(nom du fichier des messages si msg prédéfini)
 
                        MSGDTA(si le message prédéfini contient des variables
                               vous indiquerez ici la valeur des variables)


|    Changer de couleur
 
                        TOPGMQ(indique le nom de la file d'attente
                               programme où est envoyé le message.
                               Il se compose de 2 paramètres qui
                               peuvent prendre les valeurs suivantes:
 
                          !-------------!-------------!-------------------!
                          ! 1ére valeur ! 2éme valeur ! signification     !
                          !-------------!-------------!-------------------!
                          !             !             !                   !
                          !             !     *       ! MSG envoyé à la   !
                          !             !             ! pgmq du prog.     !
                          !             !             ! appelant.         !
                          !  *PRV       !-------------!-------------------!
                          !             !             !                   !
                          !             ! nom d'1     !MSG envoyé à la    !
                          !             ! programme   !pgmq du programme  !
                          !             !             !appelant celui     !
                          !             !             !indiqué dans la    !
                          !             !             !2ème valeur        !
                          !-------------!-------------!-------------------!
 


|    Changer de couleur
                          !-------------!-------------!-------------------!
                          !             !             !                   !
                          !             !             !                   !
                          !             !     *       ! MSG envoyé à la   !
                          !             !             ! pgmq du prog.     !
                          !             !             ! envoyant le MSG   !
                          !  *SAME      !-------------!-------------------!
                          !             !             !                   !
                          !             ! nom d'1     !MSG envoyé à la    !
                          !             ! programme   !pgmq du programme  !
                          !             !             !indiqué dans la    !
                          !             !             !2ème valeur        !
                          !-------------!-------------!-------------------!
                          !             !             !                   !
                          !  *EXT       ! ne sert pas ! MSG envoyé à la   !
                          !             !             ! msgq externe      !
                          !-------------!-------------!-------------------!
 
 
                      TOMSGQ(nom d'une file d'attente de messages écrans ou
                             utilisateurs, incompatible si TOPGMQ renseigné)
 


|    Changer de couleur
 
                     MSGTYPE(type du message,9 types de message possibles)
 
                          !-------!-------------!-------------------------!
                          ! type  ! traduction  ! signification           !
                          !-------!-------------!-------------------------!
                          ! *INFO ! information ! une information         !
                          !-------!-------------!-------------------------!
                          ! *INQ  !interrogation! question nécessitant une!
                          !       !             ! réponse                 !
                          !-------!-------------!-------------------------!
                          ! *COMP ! achèvement  ! indication de fin de    !
                          !       !             ! travail                 !
                          !-------!-------------!-------------------------!
                          ! *DIAG ! diagnostic  ! indication d'erreur     !
                          !       !             ! pendant l'exécution     !
                          !       !             ! du travail              !
                          !-------!-------------!-------------------------!
                          ! *RQS  ! demande     ! demande d'exécution     !
                          !       !             ! d'une fonction          !
                          !-------!-------------!-------------------------!
 


|    Changer de couleur
                          !-------!-------------!-------------------------!
                          !*ESCAPE! abandon     ! indication de fin       !
                          !       !             ! anormale                !
                          !-------!-------------!-------------------------!
                          !*STATUS! état        ! état d'avancement       !
                          !       !             ! d'un travail            !
                          !-------!-------------!-------------------------!
                          !*NOTIFY!avertissement! demande d'intervention  !
                          !       !             ! pour continuer le       !
                          !       !             ! travail                 !
                          !-------!-------------!-------------------------!
 
                      RPYMSGQ(pour les messages *INQ ou *NOTIFY le nom de
                              la pgmq ou de la msgq qui recevra la réponse)
 
                              2 possibilités :
                              - *PGMQ la réponse est envoyée à la pgmq
                                      du programme qui envoie le message
 
                              - nom d'une file d'attente de message
 
 


|    Changer de couleur
 
                      KEYVAR(indiquer le nom d'une variable qui récupérera
                              le numéro du message donné par le système,
                              ce numéro, identifie chaque message.)
 
                              Grâce à cette variable nous pourrons
                                recevoir la réponse à une question
                                (un message de type réponse à le même n°
                                 système que le message auquel il répond)
 Exemples :
 
 /* ENVOI DE MESSAGE D'ETAT, LIGNE 24 DU TERMINAL */
             SNDPGMMSG  MSGID(CPF9897) MSGF(QCPFMSG) MSGDTA('Traitement +
                         en cours ...') TOPGMQ(*EXT) MSGTYPE(*STATUS)
 
 /* ENVOI DE MESSAGE *COMP SUITE à UN TRAITEMENT TERMINE */
             SNDPGMMSG  MSG('traitement effectué') TOPGMQ(*PRV *) +
                          MSGTYPE(*COMP)
 
 /* ENVOI D'UN MESSAGE D'ERREUR (FIN ANORMALE) */
             SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('texte +
                          de l''erreur') TOPGMQ(*PRV *) MSGTYPE(*ESCAPE)





©AF400