Présentation du langage de contrôle.

BoTTom |    Changer de couleur
               L A N G A G E    D E   C O N T R O L E
         ------------------------------------------------
 
- C'est grâce au langage de contrôle que l'on accéde au système.
 
- Utilité du langage de contrôle.
 
       1 - Exécution d'une commande.
 
       2 - Exécution d'un ensemble de commandes.
 
       3 - Sous la forme d'un programme, il permet
 
                      - de contrôler une application.
 
                      - d'exécuter une fonction uniquement disponible en LC.
 
- Ses commandes simples permettent d'accéder à toutes les fonctions systèmes.
 
- Ses commandes sont pré-traduites en langage machine directement exécutable
 
 


|    Changer de couleur
 
        ===>          - possibilité d'exécuter des traitements arithmétiques
        et logiques sur des variables.
 
                      - il est possible de communiquer avec l'utilisateur
                         par fichier écran.
 
                       - possibilité d'accéder à la messagerie du système.
          (fichiers messages, files d'attente et variables de communication)
 
       - L'ensemble ainsi compilé sera appelé par une commande CALL
 
- Il est possible d'accéder aux fichiers base de données.
   (physique ou logique)   - par un accès séquentiel uniquement
 
S Y N T A X E
 
- 1 commande = 1 verbe + mot clé associé à des paramètres.
 
       - Le séparateur de base est « blanc ».
       - Le séparateur de groupe est « (   ) ».
       - Le "/" permet : - de qualifier un objet.


|    Changer de couleur
 
- Le verbe correspond toujours à 3 lettres du verbe anglais
   caractérisant l'action à effectuer associée à l'objet
   sur lequel porte celle-ci.
 
       Exemple : Création d'un fichier physique.
                 CReaTe Physical File. ===> CRTPF
 
- Le 1° paramètre est toujours l'objet sur lequel doit se faire l'action.
 
       Exemple : Création du fichier physique TOTO.     CRTPF FILE(TOTO)
 
- Exécution en interprétif.
 
    - Les commandes sont traduites en langage machine au fur et à mesure
 
        - 2 méthodes peuvent être utilisées.
 
            - A partir d'une session interactive.
              Directement. Exemple : CRTLIB LIB(TOTO) PUBAUT(*ALL)
             ou par l'intermédiaire de l'INVITE (voir ce cours)
                                     CRTLIB (puis F4)


|    Changer de couleur
 
            - Exécution à partir d'un support informatique
              (disquette, fichier base de données)
 
                 Exemple : // JOB
                              (       Si le support est la base de données
                              (        on utilisera SEU pour cataloguer les
                              (        commandes en utilisant le type CL.
                              )
                           // ENDJOB
 
- Exécution sous forme de programme compilé.
  (LA PLUS SIMPLE ET LA PLUS COMPLETE)
 
    - Les commandes sont cataloguées dans un membre d'un fichier source
       (QCLSRC) par l'intermédiaire de SEU.type CLP)
    - Les commandes sont ensuite compilées par la commande de création
       d'un programme CL. (CRTCLPGM))
    - L'ensemble de ces commandes compilées peuvent être exécutées
       par la commande CALL.
 
 


|    Changer de couleur
 
P R O G R A M M E
 
- Débute par la commande PGM. Si un paramètre est reçu par le programme,
                               il s'associe à cette commande.
 
- Se termine par ENDPGM.
 
- Structure à respecter.     PGM
                             ****
                             *  DCLF ECRAN
               DECLARATIVES  *  DCL &NOCLI *CHAR 6
                             *  DCL &NOART *DEC (6 0)
                             ****
 
                             ****
                             *  SNDRCVF RCDFMT(ECRAN1)
               COMMANDES     *  IF (&OPTION = 2) CALL PROGA
               exécutABLES   *  IF (&OPTION = 3) CALL PROGB
                             ****
                             ENDPGM
 


|    Changer de couleur
 
V A R I A B L E S
 
- Commence toujours par &.
 
- Doivent être déclarées et définies.
 - soit dans le programme.
        - 3 Types : Alphanumériques ------> *CHAR Taille maximum : 2000
                    Numériques -----------> *DEC                   15 dont 9
                    Logique (indicateur) -> *LGL                   1
 
 - soit dans le fichier utilisé par le programme.
    Le nom utilisé dans le programme sera le nom défini dans le fichier
      précédé de "&".
 
 
 - Peuvent être utilisées comme paramètres pour pratiquement
    tous les mots clés des commandes utilisées en LC.
 
 Exemple : CRTPF FILE(&LIB/&TOTO)
 
 


|    Changer de couleur
                              O P E R A T I O N S
 
- Arithmétiques       Addition         +
                      Soustraction     -
                      Multiplication   *
                      Division         /
 
                      Exemple : A = A x 2
                      S'écrit en Langage de contrôle  CHGVAR &A (&A * 2)
 
    Utilisation possible dans une expression de comparaison.
                      IF (&B = (&A + 2)) GOTO FIN
 
- Logiques et de débranchement
 - IF COND(condition) THEN(action)
 
  * Une seule action possible (avec cette syntaxe)
 
  * Les conditions peuvent être reliées par la relation « ET » ( *AND )
             ou « OU » ( *OR ).
 
 


|    Changer de couleur
 
                      - ELSE CMD(action)
   * Doit toujours être associé à un IF mais n'est pas obligatoire.
 
                      - GOTO CMDLBL(étiquette)
  * Envoie vers une étiquette qui peut être placée devant n'importe
     quelle commande.
 
 
                    G R O U P E    D E    C O M M A N D E S
 
- Pour pouvoir exécuter plusieurs commandes conditionnées
  (par un IF ou un ELSE,)  utilisation de DO et ENDDO
 
  Schéma d'utilisation    IF COND(condition) THEN(DO)
                                     (
                                     )   Exécution si la condition est vraie
                                     (
                          ENDDO
                            (
                            )   Suite du traitement.
                            )      Utilisation possible de ELSE.


|    Changer de couleur
 
                        E N T R E E S  /  S O R T I E S
 
- Tout fichier utilisé pour recevoir des informations dans un programme,
     doit être déclaré.
 
    * DCLF FILE(fichier) RCDFMT(format1 format2 ...)
 
- Utilisation : * Fichier écran : RCVF -----> Lecture
                                  SNDF -----> Ecriture
                                  SNDRCVF --> Ecriture/Lecture
 
                  Le 1° paramètre de chacune de ces commandes est
                    l'unité d'affichage à utiliser.
                  Par défaut elle est définie au niveau du fichier écran.
                     CRTDSPF FILE(fichier) DEV(*REQUESTER)
 
  Pour la lecture d'un fichier BD en sequentiel prévoir le message CPF0864
 
 
 
 


|    Changer de couleur
 
                        L O C A L    D A T A    A R E A
 
- Liée à un JOB (travail).  objet *LDA
 
- Taille : 1024 octets.
 
- Accés par les commandes : * CHGDTAARA
                            * RTVDTAARA
                            * DSPDTAARA
 
    Exemples : - Modification : Valeur avant exécution : MODIF
                       CHGDTAARA DTAARA(*LDA (5 8)) VALUE('FICATION')
                                Valeur après exécution : MODIFICATION
 
               - Lecture et chargement dans une zone de travail :
                       RTVDTAARA DTAARA(*LDA) RTNVAR(&ZONE)
 
               - Utilisation dans un programme :
                       IF COND(%SST(*LDA (10 7)) *EQ 'FACTURE') THEN(GOTO B)
 
                       il n'est pas nécessaire de lire la LDA avant.


|    Changer de couleur
 
                    C H A I N E    D E    C A R A C T E R E
 
- Concaténation.  *CAT   Juxtaposition de 2 chaines de caractères,
                  *BCAT  avec un blanc de séparation,
                  *TCAT  sans blanc de séparation.
 
     Exemple avec *CAT :  PGM
                          DCL &A *CHAR 4 'BON'
                          DCL &B *CHAR 12 'REMPLACEMENT'
                          DCL &C *CHAR 16
                          CHGVAR &C (&A *CAT &B)
                          ENDPGM
                          BON REMPLACEMENT ---> &C
 
     Exemple avec *BCAT :     PGM
               et *TCAT       DCL &NOM *CHAR 10 'CLIENT     '
                              SNDBRKMSG ('Fichier' *BCAT &NOM *TCAT  +
                               'détruit')
                              ENDPGM
 
 


|    Changer de couleur
 
- Extraction.  %SUBSTRING <===> %SST
  Syntaxe : %SUBSTRING(variable  position-de-départ  nombre-de-caractères)
 
              Exemple : PGM
                        DCL &A *CHAR 4 'BON '
                        DCL &B *CHAR 9 'REMPLACEMENT'
                        DCL &C *CHAR 13
                        CHGVAR &C (&A *CAT %SST(&B 4 9))
                        ENDPGM
 
                        Après exécution, &C a la valeur 'BON PLACEMENT'
 
         RECUPERATION DE VARIABLES systèmeS ET DES ATTRIBUTS DE TRAVAUX
 
- Valeurs systèmes. RTVSYSVAL
 
  On peut obtenir : L'heure système QTIME - QHOUR - QMINUTE - QSECOND
                    La date système QDATE - QDAY  - QMONTH  - QYEAR
                    La liste des bibliothèques systèmes     QSYSLIBL
                    La liste des bibliothèques utilisateurs QUSRLIBL
                        Etc...


|    Changer de couleur
 
 Exemple : RTVSYSVAL SYSVAL(QTIME) RTNVAR(&HEURE)
 
 * 1 seule variable par commande.
 
 * La zone recevant la valeur doit être définie.
 
 
 
- Attributs de travaux. RTVJOBA
 On peut obtenir : Le nom du travail
                   Le profil utilisateur associé
                   La date du travail
                   Les switches pour le travail
                       Etc...
 
 
 Exemple : RTVJOBA JOB(&TRAVAIL) USER(&UTIL) DATE(&DATETRAV) SWS(&SWITCH)
 
 
 
 


|    Changer de couleur
      MODIFICATION DES CARACTERISTIQUES DU TRAVAIL OU DES VALEURS système
 
- Soit en programme, soit en interprétif.
 
- Accessibles aux seuls utilisateurs autorisés.
 
- Caractéristiques du travail. CHGJOB
 
- Valeur système. CHGSYSVAL
 
 
                   G E S T I O N    D E S    M E S S A G E S
 
- Affichage du contenu d'une file d'attente. DSPMSG MSGQ(*WRKSTN)
 
- Envoi d'un message.      SNDMSG MSGQ(file-d'attente) MSG(texte-du-message)
                           SNDPGMMSG
 
- Réception d'un message.  RCVMSG - RMVMSG - SNDRPY
 
- Interception de messages.MONMSG
 


|    Changer de couleur
    Quand le système ne peut exécuter correctement une commande,
     il envoi au travail demandeur un message de type *ESCAPE(arret)
    Ces messages provoquent un arret du travail demandeur,
     s'ils ne sont pas interceptés par celui-ci.
    Pour intercepter ce type de message utilisez la commande MONMSG.
 
- 1 message particulier.     Exemple : MONMSG MSGID(CPF9801) EXEC(DO)
 
- 1 groupe de messages.      Exemple : MONMSG MSGID(CPF9800) EXEC(DO)
 
- Tous les messages.         Exemple : MONMSG MSGID(CPF0000) EXEC(DO)
 
- Emplacement de la commande dans le programme.
 * En tete de programme. (avant toute commande exécutable)
 
     Permet d'intercépter le ou les messages, quelle que soit la commande
      qui a provoqué cet envoi.
 
     Si le paramètre EXEC est précisé, il ne doit être associé qu'à GOTO.
 
 
 


|    Changer de couleur
 
 * Derriere une commande
 
 Permet d'intercépter le ou les messages produits par cette commande.
 
 Si le paramètre EXEC est précisé,
   il peut être associé à n'importe quelle commande.
 
 
                            E N C H A I N E M E N T
 
- Appel de programme. CALL - TFRCTL
 
 * CALL PGM(nom-du-programme) Le programme appelé s'exécute.
 
 A la fin de celui-ci, retour à l'instruction derrière le CALL du programme appe
 
 * TFRCTL PGM(nom-du-programme) Le programme appelé s'exécute.
 
 A la fin de celui-ci, retour à l'instruction derrière
     le dernier CALL exécuté.
 


|    Changer de couleur
 
 * Appel de programme avec envoi de paramètre(s).
 
 
       CALL PGM(nom-du-programme) PARM(variables-ou-constantes)
 
 
       TFRCTL PGM(nom-du-programme) PARM(variables-ou-constantes)
 
- Reception des paramètres.
 
              PGM PARM(variables)     Les variables doivent être déclarées.
 
- Fin de programme. RETURN
 
 Retour immédiat à l'instruction suivant le CALL dans le programme appelant.
 
 
 
   et bien sur      SIGNOFF           Fin immédiate du Job.
 
 





©AF400