Travaux de groupe

BoTTom |    Changer de couleur
 
                   TRAVAUX DE GROUPE SUR AS/400
 
  Les travaux de groupe sont des travaux utilisant le même écran et le
   même profil utilisateur,pouvant être actifs en meme temps mais
   s'exécutant de maniere alternée,et ce sous la même ouverture de session.
 
 
                                       -----------------  123459/QPGMR/DSP01
                                     --!-------------- ! 123458/QPGMR/DSP01
         ----------------          --!-------------- ! !123457/QPGMR/DSP01
         !              !          !               ! ! !
 DSP01   !              !          !               ! ! !
 QPGMR   !              !          !               ! !--      16 MAXI.
 123456  !              !          !               !--/
         ----------------          -----------------/
        /              /          /               /
       ----------------          -----------------
 
   Travail interactif simple      Travaux de groupe
 
 


|    Changer de couleur
 Chaque travail d'un groupe a ces propres ressources:
 
                   . Attributs
                   . n° de travail
                   . QTEMP
                   . *LIBL    !   (mais initialisées par copie du travail
                   . *LDA     !    ayant activé ce job)
 
 Tous les travaux d'un même groupe partagent une data-area particulière
  qui s'appelle *GDA. (512 c)
 
 Le processus de passage d'un travail simple à des travaux de groupe
  est le suivant:
 
  1/ sur un travail actif (ouverture de session realisée)
     il faut transformer ce travail en travail de groupe CHGGRPA
 
  2/ pour initialiser un autre travail au sein du groupe TFRGRPJOB
 
  Chaque travail de groupe prend 1Ko de plus en memoire du fait même qu'il
   soit travail de groupe.
 


|    Changer de couleur
 
                     Modifier attributs de groupe (CHGGRPA)    
 
 Indiquez vos choix, puis appuyez sur Entrée. 
 
 Travail de groupe  . . . . . . . GRPJOB         GRPJOB1    
 File d'attente de messages . . . MSGQ           *SAME      
   Bibliothèque . . . . . . . . .                             
 Texte 'descriptif' . . . . . . . TEXT           '1er travail de groupe'
                    
 
 
 
 
 
 
 
 
 
                                                                            Fin 
 F3=Exit   F4=Invite   F5=Réafficher   F12=Annuler   F13=Mode d'emploi invite
 F24=Autres touches                                                             


|    Changer de couleur
 
  Le travail interactif ayant passé cette commande devient travail
   de groupe (le premier et le seul du groupe pour l'instant)
 
  La data-area *GDA est crée.
 
  Maintenant ou peut demander le transfert à un autre travail de groupe
 
  Si ce travail n'existe pas il sera initialisé,le travail actuel étant
   suspendu comme pour une session alternée.
 
  La difference avec la session alternée est qu'il ne sera pas nessécaire
   d'ouvrir une session (profil et mot de passe) le second travail de
   groupe utilisant forcemment le même profil.
 
  Le paramètre INLGRPPGM sera utilisé pour initialiser ce job.
 
   SI = QCMD le processus sera celui d'une ouverture de session
      (qcmd retrouve INLPGM ou INLMNU)
 
   SI = pgm applicatif,le pgm sera appellé.
 


|    Changer de couleur
   
                   Transférer à travail de groupe (TFRGRPJOB)  
 
 Indiquez vos choix, puis appuyez sur Entrée. 
 
 Travail de groupe  . . . . . . . GRPJOB         GRPJOB2    
 Programme initial de groupe  . . INLGRPPGM      xxxxxxx    
   Bibliothèque . . . . . . . . .                  *LIBL      
 Texte 'descriptif' . . . . . . . TEXT           'travail de groupe n° 2'
                    
 
 
 
 
 
 
 
 
 
                                                                            Fin 
 F3=Exit   F4=Invite   F5=Réafficher   F12=Annuler   F13=Mode d'emploi invite
 F24=Autres touches                                                             


|    Changer de couleur
 
   Le second travail de groupe peut lui-meme passer la commande TFRGRPJOB.
 
   -vers un travail inconnu, ce job sera initialisé comme vu precedement
 
   -vers le travail precedent(*PRV = le travail ayant provoqué le transfert)
 
         GRPJOB2 sera alors suspendu
 
         GRPJOB1 reprendra le contrôle à l'instruction suivant TFRGRPJOB.
 
   GRPJOB1 aura alors lui-meme le même choix.
 
   La commande TFRGRPJOB n'est valide que si le travail est un
    travail de groupe (initialisé par un TFRGRPJOB ou ayant passée la
                       commande CHGGRPA)
 
   La commande TFRGRPJOB admet *SELECT pour le paramètre GRPJOB
 
    Le système liste alors les travaux de groupe suspendus en offrant
     à l'utilisateur le choix du transfert.
 


|    Changer de couleur
   
                         Transfert au travail de groupe 
                                                        Système:   XXXXXXXX 
 Travail de groupe actif :   GRPJOB1    
 Texte . . . . . . . . . :   1er travail de groupe                              
 
 
 Indiquez votre option, puis appuyez sur Entrée. 
   1=Transférer à un travail de groupe 
 
         ------------------Travaux de groupe en suspens------------------- 
 Opt     Travail        Texte 
         GRPJOB2        travail de groupe n° 2                             
         GRPJOB3        travail de groupe n° 3
 
 
 
 
 
                                                                       Fin 
 F3=Exit   F5=Réafficher   F6=Démarrer un nouveau travail de groupe 
 F12=Annuler 


|    Changer de couleur
 
   La fin du pgm initial pour un travail de groupe provoque la fin
    du travail de groupe et le retour au travail ayant demandé le
    transfert vers ce job pour la derniere fois.
 
   Il est possible d'anticiper cette fin de travail par la commande
    ENDGRPJOB.
 
   Cette commande laisse le choix quant au travail à arreter.
         (dft = '*', le travail en cours)
 
   Cette commande laisse le choix quant au travail à reprendre.
         (dft = '*PRV', idem à une fin de pgm)
          valide uniquement si le job à arreter est le job en cours.
 
 
   Elle est equivalente à la commande SIGNOFF pour le dernier travail
    d'un groupe.
 
   La commande SIGNOFF arrete TOUS les travaux d'un groupe
 
 


|    Changer de couleur
   
                    Arrêter un travail de groupe (ENDGRPJOB)   
 
 Indiquez vos choix, puis appuyez sur Entrée. 
 
 Travail de groupe  . . . . . . . GRPJOB         *          
 Travail de groupe à reprendre  . RSMGRPJOB      *PRV       
 Historique du travail  . . . . . LOG            *NOLIST 
 
 
 
 
 
 
 
 
 
 
 
                                                                            Fin 
 F3=Exit   F4=Invite   F5=Réafficher   F12=Annuler   F13=Mode d'emploi invite
 F24=Autres touches                                                             


|    Changer de couleur
 
    L'utilisation la plus rationnelle des travaux de groupe est de
      programmer les transferts via un pgm CL et d'associer ce pgm
      à la touche ATTN (SETATNPGM).
 
   Il faudra passer la commande SETATNPGM pour chaque travail de groupe
 
   ==> création de deux pgms:
 
       1/ programme associé à la touche ATTN gérant les transferts.
 
       2/ prgramme initial de chaque travail de groupe
 
                   - associant le pgm 1/ à la touche ATTN
 
                   - et exécutant l'option correspondant à ce job
 
                        (en général traitement suivant le nom du job)
 
       La pgm 1/ utilisera alors la commande RTVGRPA permettant
        d'avoir des informations sur l'enchainement des travaux.
 


|    Changer de couleur
   
                     Extraire attributs de groupe (RTVGRPA)    
 
 Indiquez vos choix, puis appuyez sur Entrée. 
 
 Variable pour GRPJOB      (10)   GRPJOB                     
 Variable pour GRPJOBL   (1056)   GRPJOBL                    
 Variable pour GRPJOBCNT  (3 0)   GRPJOBCNT                  
 Variable pour MSGQ        (10)   MSGQ                       
 Variable pour MSGQLIB     (10)   MSGQLIB                    
 Variable pour PRVGRPJOB   (16)   PRVGRPJOB                  
 Variable pour CTLCDE     (3 0)   CTLCDE                     
 
 
 
 
 
 
 
                                                                            Fin 
 F3=Exit   F4=Invite   F5=Réafficher   F12=Annuler   F13=Mode d'emploi invite
 F24=Autres touches                                                             


|    Changer de couleur
 
    Variable pour GRPJOB      (10) (GRPJOB)                                     
                                                                                
        Désigne la variable CL qui reçoit le nom du travail de groupe. Cette    
        variable doit être de type alphabétique et d'une longueur minimale      
        de 10 caractères. Si le nom du travail comporte moins de caractères,    
        la valeur est complétée à droite par des blancs.                        
                                                                                
    Variable pour GRPJOBL   (1056) (GRPJOBL)                                    
                                                                                
        Désigne la variable CL qui reçoit la liste des travaux du groupe.       
        Chaque poste contient le nom, le numéro et la description du            
        travail.                                                                
                 !nomjob(10c)!N°(6c)!<--texte (50c)-->!nomjob...etc...! 
 
        Le premier poste de la liste concerne le dernier travail                
        actif et ainsi de suite (16 postes au maximum). La variable doit        
        être de type alphabétique et d'une longueur minimale de 1056            
        caractères. Si la liste comporte moins de caractères, la valeur est     
        complétée à droite par des blancs.                                      
                                                                                
 


|    Changer de couleur
 
    Variable pour GRPJOBCNT  (3 0) (GRPJOBCNT)                                  
                                                                                
        Désigne la variable CL qui reçoit le nombre de travaux actifs. Cette    
        variable décimale doit comporter 3 positions, sans virgule. Ce          
        chiffre correspond au nombre de postes de la liste de travaux. Les      
        travaux qui ont été annulés ne sont pas pris en compte.                 
                                                                                
    Variable pour MSGQ        (10) (MSGQ)                                       
                                                                                
        Désigne la variable CL qui reçoit le nom de la file d'attente de        
        messages.                                                               
                                                                                
    Variable pour MSGQLIB     (10) (MSGQLIB)                                    
                                                                                
        Désigne la variable CL qui reçoit le nom de la bibliothèque             
        contenant la file d'attente de messages.                                
     #                                                                           
 
 
 
 


|    Changer de couleur
 
    Variable pour PRVGRPJOB   (16) (PRVGRPJOB)                                  
                                                                                
        Désigne la variable CL qui reçoit le nom et le numéro du précédent      
        travail actif dans le groupe.                                           
        Si le groupe ne contient aucun travail actif la valeur sera *NONE,      
         Le format de la variable est le suivant                                
                                                                                
           !Nom-travail-groupe (10c)!n°du travail(6c)!                          
                                                                                
    Variable pour CTLCDE     (3 0) (CTLCDE)                                     
 
        Désigne la variable CL qui reçoit l'explication de la prise de 
        contrôle par le travail actif du groupe. Cette variable décimale        
        doit comprendre 3 positions, sans virgule.                              
                                                                                
        la reprise de contrôle par défaut est faite par le job le plus
         recent dans la liste des travaux de groupe.
 
      Les valeurs possibles sont les suivantes :                                
                                                                                
          0       Pas de travail de groupe précédent                            


|    Changer de couleur
                                                                                
         10       Le travail précédent a transferé le contrôle à ce travail     
                   par TFRGRPJOB.                                               
                                                                                
         20       Le travail précédent s'est terminé normalement                
                  (fin du pgm initial)
 
         30       Le travail précédent s'est terminé par ENDGRPJOB et a         
                   indiqué ce job comme job de reprise (RSMGRPJOB)
 
         40       Le travail précédent s'est terminé par ENDGRPJOB et a         
                   indiqué un autre job comme job de reprise mais ce job
                   (de reprise) s'est terminé, et le job en cours était
                   le plus recent.
 
         50       Le travail précédent s'est terminé par ENDGRPJOB ,n'a         
                   pas indiqué de job comme job de reprise (RSMGRPJOB=*PRV)
                   et le job en cours était le plus recent.
 
         60       Le travail précédent s'est terminé anormalement               
 
         70       Le travail précédent a été arreté par ENDJOB                  


|    Changer de couleur
   EXEMPLES: 
 
   1er exemple: faire alterner deux travaux de groupe sans menu.
 
             PGM
 /**************************************************************/
 /*                                                            */
 /*  PGM ASSOCIé A LA TOUCHE ATTN                              */
 /*                 => ALTERNAT  job principal/menu interro    */
 /*                                                            */
 /**************************************************************/
             DCL        VAR(&GRP) TYPE(*CHAR) LEN(10)
             DCL        VAR(&TFR) TYPE(*CHAR) LEN(10)
             DCL        VAR(&PRV) TYPE(*CHAR) LEN(16)
             DCL        VAR(&COUNT) TYPE(*DEC) LEN(3 0)
             DCL        VAR(&TXT) TYPE(*CHAR) LEN(50)
 /**************************************************************/
 /*  EXTRACTION NOM DE GROUPE DU TRAVAIL EN COURS              */
 /*            SI TRAVAIL NONGRP--> INITIALISE TRAVAIL DE GROUPE*/
 /**************************************************************/
  RTV:       RTVGRPA    GRPJOB(&GRP) GRPJOBCNT(&COUNT) PRVGRPJOB(&PRV)
               MONMSG CPF1311 /* le travail n'est pas travail de groupe */


|    Changer de couleur
 
             IF         COND(&COUNT = 0 ) THEN(DO)
               CHGGRPA    GRPJOB(MAIN) TEXT('Travail principal')
               GOTO RTV /* Pour renseigner les variables */
             ENDDO
 /**************************************************************/
 /*  SI PLUS DE 2 TRAVAUX DANS LE GROUPE ,                     */
 /*        CHOIX DU TRAVAIL VERS LEQUEL FAIRE LE TRANSFERT     */
 /*  (RISQUE D'INTERFERANCE AVEC AUTRE APPLICATION UTILISANT   */
 /*   LES TRAVAUX DE GROUPE / ASSISTANT PAR EXEMPLE         )  */
 /**************************************************************/
             IF (&COUNT *GT 2) DO
               TFRGRPJOB  GRPJOB(*SELECT)
             ENDDO
 
             ELSE DO /* nbr de jobs < ou = 2 */
 /**************************************************************/
 /*  PASSE D'UN TRAVAIL DE GROUPE A L'AUTRE                    */
 /*        SI 2EME TRAVAIL INEXISTANT SERA INITIALSE(INLGRPPGM)*/
 /**************************************************************/
               IF         COND(&GRP *EQ 'INTERRO') THEN(DO)
 


|    Changer de couleur
 /**************************************************************/
 /* LE JOB INTERRO PEUT SE RETROUVER SEUL TRAVAIL DE GROUPE    */
 /*  (SI L'UTLISATEUR FAIT F3 SUR SON TRAVAIL PRINCIPAL)       */
 /*  IL DOIT être ALORS RE-ACTIVé                              */
 /**************************************************************/
                 IF         COND(&PRV = '*NONE')  THEN(DO)
                   CHGVAR     VAR(&TFR) VALUE('MAIN')
                   CHGVAR     VAR(&TXT) VALUE('Travail principal')
                 ENDDO
                 ELSE       CMD(CHGVAR VAR(&TFR) VALUE(&PRV))
               ENDDO
               ELSE       CMD(DO)  /* JOB = MAIN */
                 CHGVAR VAR(&TFR) VALUE('INTERRO')
                 CHGVAR     VAR(&TXT) VALUE('Menu interrogation')
               ENDDO
   /****************************************************************/
   /* TRANSFERT, SI CE TRAVAIL DE GROUPE EST DEJA INITIALISE,      */
   /* LE PARAMETRE INLGRPPGM EST IGNORé, SINON CE PGM EST APPELLé  */
   /****************************************************************/
               TFRGRPJOB  GRPJOB(&TFR) INLGRPPGM(INIT) TEXT(&TXT)
             ENDDO
             ENDPGM


|    Changer de couleur
             PGM    /* pgm initial de chaque travail de groupe */
             DCL        VAR(&GRP) TYPE(*CHAR) LEN(10)
             DCL        VAR(&PGM) TYPE(*CHAR) LEN(10)
 /**************************************************************/
 /*  RETROUVE LE NOM DE GROUPE DU TRAVAIL EN COURS             */
 /**************************************************************/
             RTVGRPA    GRPJOB(&GRP)
 /**************************************************************/
 /*  ACTIVATION DE LA TOUCHE ATTN                              */
 /**************************************************************/
             SETATNPGM  PGM(ATTN)
 /**************************************************************/
 /*  APPEL DE PGM SUIVENT LE NOM DE GROUPE                     */
 /**************************************************************/
             IF (&GRP *EQ 'INTERRO') THEN(DO)
                CALL XXXXXXX
             ENDDO
             ELSE  DO
               RTVUSRPRF  INLPGM(&PGM)
               CALL &PGM
             ENDDO
             ENDPGM


|    Changer de couleur
 
   Autre exemple: faire alterner jusqu'à 4 travaux par un menu.
 
   Sur le menu
 
   + l'option en cours est en haute intensité
      (indicateur pour DSPATR(HI) ayant le même n° que l'option)
 
   + les options actives sont precedées de ">"
      une zone devant chaque option JOBxx ou xx est le n° de l'option.
 
   + touches de commande:
 
      F3  = fin du travail de groupe
           si dernier ==> CHGGRPA *NONE
           sinon      ==> ENDGRPJOB
 
      F12 = reprise du travail en cours (fin du pgm)
 
      F21 = fenetre de commande (API QUSCMDLN)
 
      F22 = TFRGRPJOB *SELECT


|    Changer de couleur
 
                   ** gestion des travaux de groupe **      Le: 20/03/92 
 
 
 > = Actif, l'option en cours est en haute intensité 
 
  >  01. Travail principal 
 
  >  02. Menu support 
 
     03. Assistant 
 
  >  04. P D M 
 
 
  Choisissez une option   
 
     Option :      
 
 
 F3 = Fin du travail en cours,F12 = reprise du travail en cours 
 F21 = ligne de commande,F22 = Liste des travaux de groupe 


|    Changer de couleur
             PGM            /* pgm associé à la touche ATTN */
             DCLF GRPJOBD
             DCL &GRPJOB    *CHAR 10
             DCL &GRPJOBCNT *DEC (3 0)
             DCL &GRPJOBL   *CHAR 1056
             DCL &CTLCDE    *DEC (3 0)
             DCL &OPTCHAR   *CHAR 2
             DCL &CNT       *DEC (3 0)
             DCL &PT        *DEC (4 0)
 
  /****************************************************************/
  /*  EXTRACTION DES ATTRIBUTS DE GROUPE                          */
  /****************************************************************/
 RTV:        RTVGRPA    GRPJOB(&GRPJOB) GRPJOBL(&GRPJOBL) +
                          GRPJOBCNT(&GRPJOBCNT)
  /****************************************************************/
  /*  SI JOB N'EST GRPJOB => INITIALISATION EN TRAVAIL DE GROUPE  */
  /****************************************************************/
              IF (&GRPJOBCNT = 0) DO
               CHGGRPA    GRPJOB(JOB01) TEXT('Travail principal')
               GOTO RTV
              ENDDO


|    Changer de couleur
 
           /* MISE EN EVIDENCE DU JOB EN COURS */
           /* INDICATEUR DSPATR(RI) EN FACE N° OPTION */
 
              CHGVAR &IN01 '0'
              CHGVAR &IN02 '0'
              CHGVAR &IN03 '0'
              CHGVAR &IN04 '0'
              IF (&GRPJOB = 'JOB04') CHGVAR &IN04 '1'
              ELSE IF (&GRPJOB = 'JOB03') CHGVAR &IN03 '1'
                   ELSE IF (&GRPJOB = 'JOB02') CHGVAR &IN02 '1'
                        ELSE CHGVAR &IN01 '1'
 
           /* MISE EN EVIDENCE DES JOBS ACTIFS */
           /* INDICATION ">"  EN FACE N° OPTION */
 
              CHGVAR &JOB01 ' '
              CHGVAR &JOB02 ' '
              CHGVAR &JOB03 ' '
              CHGVAR &JOB04 ' '
              CHGVAR &CNT 0
 


|    Changer de couleur
 BOUCLE:      CHGVAR &CNT (&CNT + 1)
              IF (&CNT *GT &GRPJOBCNT) GOTO IMAGE
              CHGVAR &PT ((&CNT * 66) - 65)
              IF (%SST(&GRPJOBL &PT 5) = 'JOB01') CHGVAR &JOB01 '>'
              IF (%SST(&GRPJOBL &PT 5) = 'JOB02') CHGVAR &JOB02 '>'
              IF (%SST(&GRPJOBL &PT 5) = 'JOB03') CHGVAR &JOB03 '>'
              IF (%SST(&GRPJOBL &PT 5) = 'JOB04') CHGVAR &JOB04 '>'
              GOTO BOUCLE
 
 IMAGE:       SNDRCVF
  /****************************************************************/
  /*  TRAITEMENT DES TOUCHES DE COMMANDE                          */
  /****************************************************************/
              IF &IN22 RETURN  /* F12 = RETOUR */
 
              IF &IN23 DO      /* F3 = FIN DU TRAVAIL DE GROUPE */
                 IF (&GRPJOBCNT *GT 1) ENDGRPJOB
                 ELSE DO
                   CHGGRPA *NONE
                   RETURN
                 ENDDO
              ENDDO


|    Changer de couleur
 
              IF &IN21 DO      /* F21 = LIGNE DE CDE */
                 CALL QUSCMDLN
                 GOTO IMAGE
              ENDDO
 
              IF &IN32 DO      /* F22 = SELECTION    */
                 TFRGRPJOB *SELECT
                 GOTO RETOUR   /* TEST DES RAISONS DU RETOUR */
              ENDDO
  /*                                                              */
  /*  SI OPTION CHOISIE EST LE TRAVAIL EN COURS ==> RETURN        */
  /*                                                              */
             CHGVAR &OPTCHAR &OPT
             IF (&OPTCHAR = %SST(&GRPJOB 4 2)) RETURN
 
  /*                                                              */
  /*  TRAITEMENT DE L'OPTION CHOISIE                              */
  /*                                                              */
 
 
 


|    Changer de couleur
  /*  SI OPTION 1 TRANSFERT VERS JOB01                            */
  /*                                                              */
  /*              SI DEJA ACTIF INLGRPPGM IGNORé                  */
  /*                                                              */
  /*              SI INACTIF APPEL DE QCMD QUI RETROUVERA LE      */
  /*                 PGM OU MENU INITIAL                          */
  /*                                                              */
             IF         COND(&OPT = 1) THEN(TFRGRPJOB GRPJOB(JOB01) +
                          INLGRPPGM(QCMD) TEXT('Travail principal'))
  /*                                                              */
  /*  POUR LES AUTRES OPTIONS C'EST TOUJOURS LE MEME PGM          */
  /*   QUI EST APPELLE (GRPJOBCL2)                                */
  /*                                                              */
  /*       ASSOCIERA AU JOB CE PGM VIA ATTN                       */
  /*                                                              */
  /*                 PUIS exécutERA LA COMMANDE FONCTION DU       */
  /*                      NOM DU JOB                              */
             ELSE +
             IF         COND(&OPT = 2) THEN(TFRGRPJOB GRPJOB(JOB02) +
                          INLGRPPGM(GRPJOBCL2) TEXT('Menu support'))
             ELSE +
             IF         COND(&OPT = 3) THEN(TFRGRPJOB GRPJOB(JOB03) +


|    Changer de couleur
                          INLGRPPGM(GRPJOBCL2) TEXT('Assistant'))
             ELSE +
             IF         COND(&OPT = 4) THEN(TFRGRPJOB GRPJOB(JOB04) +
                          INLGRPPGM(GRPJOBCL2) TEXT('P D M'))
                           /* OPTION INVALIDE */
             ELSE GOTO IMAGE
 
  /*                                                              */
  /*  ANALYSE DES RAISONS DU RETOUR A CE JOB                      */
  /*                                                              */
  /*       0 = PAS DE TRAVAIL PRECEDENT                           */
  /*      10 = RETOUR PAR TFRGRPJOB                               */
  /*           ==> FIN DE CE PGM                                  */
  /*      20 ET > = FIN DU TRAVAIL DE GROUPE PRECEDENT            */
  /*            (FIN NORMALE OU ANORMALE OU ENDGRPJOB)            */
  /*           ==> REAFFICHAGE IMAGE POUR CHOIX DU JOB            */
  /*                                                              */
  RETOUR:     RTVGRPA    GRPJOB(&GRPJOB) CTLCDE(&CTLCDE)
              IF (&CTLCDE > 10) GOTO RTV
 
             ENDPGM
 


|    Changer de couleur
             PGM                     /* pgm intial de chaque job */
             DCL &GRPJOB *CHAR 10
 
             SETATNPGM  PGM(GRPJOBCL)
 
             RTVGRPA    GRPJOB(&GRPJOB)
 
             IF (&GRPJOB = 'JOB02')  GO SUPPORT
                ELSE IF (&GRPJOB = 'JOB03') GO ASSIST
                     ELSE IF (&GRPJOB = 'JOB04') STRPDM
                          ELSE GO MAIN /* ou autre action */
 
              ENDPGM




©AF400