Cours messages 1 (définition)

BoTTom |    Changer de couleur
 
                  ------------------------ 
                  ! GESTION DES MESSAGES ! 
                  ------------------------ 
 
 
1 LES MESSAGES.
---------------
 
 Un message est un moyen de communiquer entre:
  -  des utilisateurs
  -  des programmes
  -  un programme et un(des) utilisateur(s).
 
 
 Il existe 2 types de message : - message impromptu
 
                                - message prédéfini
 
 
 
 


|    Changer de couleur
 
1.1 MESSAGE IMPROMPTU.
----------------------
 
     C'est un message dont le texte est écrit lors de l'envoi du message.
 
       Ex: j'envoie le message 'il est 12h on mange'
 
     Dans ce type de message on envoie une chaîne de caractères. Il est
     possible de placer le contenu du message dans une variable et de
     faire référence à la variable lors de l'envoi du message.
 
     On pourra dans tous les cas utiliser la concaténation pour définir
     le texte du message.
 
     Ce type de messages peut être envoyé par les commandes: - SNDMSG
                                                             - SNDBRKMSG
                                                             - SNDPGMMSG
                                                             - SNDUSRMSG
 
 
 


|    Changer de couleur
 
1.2 MESSAGE PREDEFINI.
----------------------
 
  Le message est défini avant l'envoi du message. Il est enregistré
  dans un fichier message (*MSGF).
 
    Ex: 'travail PGMBAS1 terminé le 150187 à 173500' est un message
         pré-défini. Le texte de ce message se trouve dans le fichier
         des messages du système : QCPFMSG.
 
  Pour envoyer un message de ce type, il faut indiquer son identifiant
  (sa clé) et le nom du fichier messages.
 
1.2.1 CREATION D'UN FICHIER DES MESSAGES.
-----------------------------------------
 
    Avant de pouvoir enregistrer des messages prédéfinis il faut créer
    le fichier des messages. Le type d'objet est *MSGF,la commande sera :
 
                   CRTMSGF
 


|    Changer de couleur
    Les paramètres de la commande sont :
 
     CRTMSGF  MSGF(bibliothèque/nom du fichier de messages)
 
              SIZE(taille initiale du fichier en Ko, par défaut 10)
                  (taille d'un incrément en Ko, par défaut 2)
                  (nombre d'incrément, par défaut *NOMAX)
 
              AUT(les droits autorisés à tous sur cet objet)
 
              TEXT(le texte renseignant l'objet)
 
   Vous pouvez gérer l'objet en utilisant la commande :
 
      WRKMSGF
 
     En plus de visualiser la définition de l'objet, une commande vous
     permettra de visualiser les messages qu'il contient en indiquant
     la clé du 1er message à afficher et la clé du dernier.
 
      DSPMSGD (ou WRKMSGD)
 


|    Changer de couleur
 
      DSPMSGD
 
               RANGE(clé du 1er message à afficher, par défaut *FIRST)
                    (clé du dernier à afficher, par défaut *ONLY)
 
               MSGF(nom du fichier de message)
 
               DETAIL(*DETAIL pour voir le 1er niveau)
                     (*FULL pour voir la définition complète)
 
   Vous pouvez supprimer le fichier en utilisant la commande DLTMSGF
 
 
     DLTMSGF  MSGF(nom du fichier message)
 
 
 
 
 
 
 


|    Changer de couleur
 
 
1.2.2 AJOUT D'UN MESSAGE DANS LE FICHIER DES MESSAGES.
------------------------------------------------------
 
   Un message prédéfini est composé en quelques sortes de "2 messages"
   le message de 1er niveau qui est affiché lors de l'envoi du message
   et le message de second niveau qui sera accessible en appuyant sur
   la touche AIDE.
 
   La commande d'ajout de message indique une multitudes de fonctions,
   en particulier et surtout le texte des messages de 1er et 2nd niveau
   mais aussi des variables qui peuvent être inclues dans les textes,
   des informations concernant la réponse, la gravité du message etc...
 
 
     Voici le format de la commande, les fonctions des différents
     paramètres seront expliquées plus loin.
 
     La commande est ADDMSGD (add message définition)
 
 


|    Changer de couleur
 
     ADDMSGD  MSGID(la clé du message)
 
              MSGF(le fichier des messages)
                  (bibliothèque)
 
              MSG('texte du message de 1er niveau')
 
              SECLVL('texte du message de 2ème niveau')
 
              SEV(gravité du message, nombre compris entre 00 et 99
                  ou 99 est la plus haute gravité)
 
              FMT(descriptions de la ou des variables utilisées dans le
                  message)
 
 
 
         Les paramètres qui suivent permettent de définir la réponse
          à ce message quand il est envoyé de type *INQ (question)
 
 


|    Changer de couleur
 
 
              TYPE(si le message entraîne une réponse on indiquera le type
                   de la réponse *CHAR,*DEC,..)
 
              LEN(longueur de la réponse,si numérique on indiquera en plus
                   le nombre de décimales)
 
 
              VALUES(liste des réponses autorisées)
 
              SPCVAL(valeurs spéciales de remplacement pour la réponse)
 
              RANGE(2 valeurs entre lesquelles la réponse doit être comprise)
 
              REL(contrôle de la réponse réalisé par comparaison)
 
              DFT(valeur par défaut de la réponse)
 
      Il existe encore d'autres paramètres dans cette commande, d'utilisation
       moins fréquente.
 


|    Changer de couleur
 
      Quelques précisions sur certains paramètres de cette commande.
 
      MSGID  permet de codifier la clé du message, la clé doit être
             unique dans le fichier des messages. Elle vous donnera
             le moyen de retrouver un message.
 
             La clé se compose de 7 caractères les 3 premiers étant
             ALPHABETIQUES et les 4 suivants NUMERIQUES HEXA (0 à F)
 
             Ex: MSGID(CPF8207) ... MSGID(EXP00FA)
 
 
      FMT:   Lorsque vous définissez le texte d'un message vous pouvez
             utiliser des variables dans ce message (maximum 99 variables).
 
         Ex: 'travail PGMBAS1 terminé le 150187 à 173500' est un message
              avec 3 variables, le nom du travail, la date et l'heure.
 
 
 
 


|    Changer de couleur
 
              Pour utiliser des variables dans un message vous définirez
              le texte comme suit.
 
              MSG('travail &1 terminé le &2 à &3')
 
              Lors de l'envoi du message vous indiquerez la valeur
              de ces variables. Le paramètre FMT permet de définir
              ces variables :
 
 
              FMT  type de la variable (*CHAR,*DEC,...)
                   longueur de la variable
                   nombre de décimales
 
 EX:         ADDMSGD    MSGID(MSG0001) MSGF(MYMSGF) MSG('travail &1 +
                          terminé le &2 à &3') FMT((*CHAR 10) (*CHAR 6) +
                          (*CHAR 6))                   ^          ^
                              ^                        !          !
                              !                        !          !
                              &3                       &1         &2
 


|    Changer de couleur
 
 
 
      SPCVAL permet d'associer des valeurs de remplacement à une
             réponse.
 
             Supposons que dans un message vous demandiez une réponse,
             vous n'autorisez que 2 réponses OUI ou NON.
             si l'utilisateur répond 'oui',cela sera considéré comme        ?
             incorrecte, car 'oui' est écrit en minuscule.
 
             Grâce au paramètre SPCVAL vous direz que 'oui' est égal à 'OUI'
 
             ADDMSGD    MSGID(MSG0002) MSGF(MYMSGF) MSG('voulez-vous +
                          continuer le travail?') SECLVL('répondez +
                          OUI si vous voulez poursuivre le travail et +
                          NON si vous voulez interrompre le +
                          traitement') LEN(3) VALUES('OUI' 'NON') +
                          SPCVAL(('oui' 'OUI') ('non' 'NON'))
 
 
 


|    Changer de couleur
 
 2 TRANSMISSION DES MESSAGES.
 ----------------------------
 
 TOUS LES MESSAGES SONT ENVOYES A DES FILES D'ATTENTE DE MESSAGES (MSGQ)
 
 Il existe 3 types de file d'attente de messages.
 
           - file d'attente de messages associée à un écran.
 
           - file d'attente de messages utilisateur.
 
           - file d'attente de message du travail
 
 
 
 
 
 
 
 
 


|    Changer de couleur
 
  2.1. Files d'attente de messages associées à un écran.
  -----------------------------------------------------
 
     - Elles ont le même nom que l'écran
     - Créées implicitement en même temps que l'écran
     - Allouées à l'écran de même nom
     - Suppression impossible
 
   Exemple si vous travaillez avec l'écran DSP10 il existe une
   file d'attente de messages qui se nomme DSP10 et qui est
   associée à cet écran.
 
   Vous pouvez visualiser le contenu de cette MSGQ par la commande
   DSPMSG.
 
          DSPMSG MSGQ(nom de la message queue)
 
                 START(à partir de quel message *LAST  le dernier
                                                *FIRST le premier)
 
                 SEV(à partir de quel gravité de message-entre 01 et 99)


|    Changer de couleur
 
  2.2. Files d'attente de messages utilisateurs.
  ----------------------------------------------
 
     - Créées par les utilisateurs (ou à la création du profil)
       pour recevoir les messages dans une MSGQ particulière.
 
                  CRTMSGQ MSGQ(nom de la msgq)
                          FORCE(forcer écriture immédiate sur disque)
                          SIZE(taille de la MSGQ)
 
     - Supprimées par la commande DLTMSGQ, visualisées par DSPMSG.
 
 
      Ce type de msgq peut être alloué par un utilisateur grâce à
      la commande CHGMSGQ, cette commande sert aussi à changer le
      mode de livraison des messages.
 
      CHGMSGQ MSGQ(nom de la msgq)
 
              DLVRY(mode de livraison des messages)
 


|    Changer de couleur
 
    4 modes de livraison
 
 
                   - *BREAK livraison immédiate si un message est envoyé
                        à ume msgq en *BREAK le travail est interrompu
 
 
                    - *HOLD les messages sont stockés dans la MSGQ
 
 
                    - *NOTIFY les messages sont stockés, s'il s'agit d'un
                       travail interactif, le voyant "messages" est allumé.
                       et un signal sonore est émis.
 
 
                     - *DFT  pas de livraison de message.
                             Pour les messages d'ineterrogation
                              la réponse par défaut est envoyée.
 
 
 


|    Changer de couleur
 
 
  2.3 FILES D'ATTENTES DE MESSAGES DU TRAVAIL.
  --------------------------------------------
 
  Elles sont créées automatiquement par le système pour chaque travail.
 
  Elles sont constituées de 2 parties : - la msgq externe (*EXT)
 
                                        - les msgq programme
 
 
  2.3.1 LA MSGQ EXTERNE.
  ----------------------
 
  Elle sert à communiquer entre le travail et l'utilisateur pour les
  travaux interactifs.
  Tous les messages reçus sont dupliqués dans l'historique du travail   (JOBLOG), cette JOBLOG peut être visualisée ou imprimée grâce à   la commande DSPJOB option 10 ou par la cde DSPJOBLOG.    

|    Changer de couleur
 
    Pour un travail interactif :
    si un message d'information, d'interrogation ou d'avertissement
    est envoyé à l'external le message est visualisé à l'écran
    et le travail attend une réponse.

Si un message d'état du travail est envoyé     il sera visualisé sur la ligne de message de l'écran.       Pour un travail BATCH.     Le système affectera automatiquement la réponse par défaut si     des messages d'interrogation ou d'avertissement sont envoyés.         Cette partie reçoit toutes les demandes d'exécution de commandes.
    Quand vous saisissez une commande, un message est envoyé à la     msgq externe de type demande (request RQS), ce message est traité     par l'interpreteur de coomandes.
    Quand vous soumettez un travail vous écrivez la commande à     exécuter dans le paramètre RQSDTA (donnée de la demande).
    Initialement la msgq *EXT contiendra la 1ere commande exécutée.  

|    Changer de couleur
 
  2.3.2 LES MSGQ PROGRAMMES.
  --------------------------
 
     Elles sont utilisées pour communiquer entre programmes d'un
     même travail.
 
     Une msgq programme est créée pour chaque invocation d'un
     programme , cette msgq aura le même nom que le programme.
 
     
 Visualisons ce que nous venons d'apprendre:
 
 Supposons 2 programmes CLP1 et CLP2:
 
 CLP1  - envoie un message MSG 1 au programme l'appelant
 
       - appelle le programme CLP2
 
       - envoie un message MSG 2 au programme l'appelant
 
CLP2   - envoie un message MSG A au programme l'appelant


|    Changer de couleur
 
 
Aprés l'exécution de CLP1 exécuté par SBMJOB JOB(TRAVAIL)
                                             RQSDTA(CALL CLP1)
 
 
nous aurons la msgq du travail comme suit:
 
              ---------------------
              !  CALL CLP1        !
              !  MSG 1            !  MSGQ *EXT
              !  MSG 2            !
              !-------------------!
              !                   !
              !  MSGA             !  MSGQ CLP1
              !                   !
              !-------------------!
              !                   !  MSGQ CLP2
              !-------------------!
 
 





©AF400