Prompt override program (POP)

BoTTom |    Changer de couleur
 
         Création d'une commande CHGxxx
 
          avec programme de substitution d'invite
 
     +  BUT: Seul les paramètres permettant d'acceder à l'information sont
             affichés par le système dans un premier temps.
 
                  (ces paramètres sont indiqués avec PARMKEY(*YES) )
 
     +  PUIS appel par le système du POP (Prompt Override Program)
             qui reçoit un paramtre 10 alpha = nom de la commande                         les paramètres clé                         un paramètre devant contenir a la fin du POP                         le reste de la commande paramétré                            (MOTS-CLES + Valeures)        +  A la fin du pop le système affiche l'invite complete           puis appel le CPP si la commande n'est pas annulée.           Exemple avec EDTOBJOWN  


|    Changer de couleur
                     Modifier propio d'un objet (EDTOBJOWN)    
 
 Indiquez vos choix, puis appuyez sur Entrée. 
 
 Objet  . . . . . . . . . . . . . OBJ             ########## 
   Bibliotheque . . . . . . . . .                  *LIBL      
 Type d'objet . . . . . . . . . . OBJTYPE         ########## 
 
 
 
 
 
 
 
 
 
 
 
 
                                                                            Fin 
 F3=Exit   F4=Invite   F5=Réafficher   F12=Annuler   F13=Mode d'emploi invite
 F24=Autres touches                                                             


|    Changer de couleur
                     Modifier propio d'un objet (EDTOBJOWN)    
 
 Indiquez vos choix, puis appuyez sur Entrée. 
 
 Objet  . . . . . . . . . . . . . OBJ             ESSAI      
   Bibliotheque . . . . . . . . .                  QGPL       
 Type d'objet . . . . . . . . . . OBJTYPE         *DTAARA    
 
 
 
 
 
 
 
 
 
 
 
 
                                                                            Fin 
 F3=Exit   F4=Invite   F5=Réafficher   F12=Annuler   F13=Mode d'emploi invite
 F24=Autres touches                                                             


|    Changer de couleur
                     Modifier propio d'un objet (EDTOBJOWN)    
 
 Indiquez vos choix, puis appuyez sur Entrée. 
 
 Objet  . . . . . . . . . . . . . OBJ          >  ESSAI      
   Bibliotheque . . . . . . . . .              >   QGPL       
 Type d'objet . . . . . . . . . . OBJTYPE      >  *DTAARA    
 Nouveau proriétaire  . . . . . . NEWOWN         QSECOFR    
 
 
 
 
 
 
 
 
 
 
 
                                                                            Fin 
 F3=Exit   F4=Invite   F5=Réafficher   F12=Annuler   F13=Mode d'emploi invite
 F24=Autres touches                                                             


|    Changer de couleur
 
             CMD        PROMPT('Modifier propio d''un objet')
/******************************************************************/
/* PARAMETRES DE LA COMMANDE                                      */
/* OBJ ET OBJTYPE SONT DES PARAMETRES CLES                        */
/* NEWOWN DOIT être RENVOYE AVEC LE NOM DU PROPRIO PAR LE "POP"   */
/******************************************************************/
             PARM       KWD(OBJ) TYPE(Q1) MIN(0) KEYPARM(*YES) +
                          PROMPT('Objet')
             PARM       KWD(OBJTYPE) TYPE(*CHAR) LEN(10) RSTD(*YES) +
                          VALUES(*LIB *FILE *PGM *DTAARA) MIN(1) +
                          KEYPARM(*YES) PROMPT('Type d''objet')
             PARM       KWD(NEWOWN) TYPE(*NAME) MIN(1) +
                          PROMPT('Nouveau proriétaire')
/******************************************************************/
/* QUALIFICATEURS DU PARAMETRE OBJ                                */
/******************************************************************/
 Q1:         QUAL       TYPE(*NAME) MIN(1)
             QUAL       TYPE(*NAME) DFT(*LIBL) SPCVAL((*LIBL)) +
                          PROMPT('Bibliotheque')
 
 


|    Changer de couleur
     P O P  
             PGM        PARM(&CMD &FULLOBJ &OBJTYPE &RESTE)
             DCL        VAR(&CMD) TYPE(*CHAR) LEN(10) /* Contient le +
                          nom de la cde exécutée */
             DCL        VAR(&FULLOBJ) TYPE(*CHAR) LEN(20) /* Objet + +
                          bibli */
             DCL        VAR(&OBJTYPE) TYPE(*CHAR) LEN(10) /* Type de +
                          l'objet */
             DCL        VAR(&RESTE) TYPE(*CHAR) LEN(20) +
                          VALUE('  NEWOWN(xxxxxxxxxx)') /* Reste de +
                          la commande à renvoyer au système */
             DCL        VAR(&BIN) TYPE(*CHAR) LEN(2) VALUE(X'0014') +
                          /* LG en binaire (20) de &RESTE */
                          /* devant être renvoyée par le POP au système */
             DCL        VAR(&OBJ) TYPE(*CHAR) LEN(10)
             DCL        VAR(&LIB) TYPE(*CHAR) LEN(10)
             DCL        VAR(&OWN) TYPE(*CHAR) LEN(10)
 /* VARIABLES UTILISEES PAR LA GESTION DE MESSGAES */
             DCL        &MSGID *CHAR LEN(7)               /* ID MSG  */
             DCL        &MSGDTA *CHAR LEN(100)            /* DATA    */
             DCL        &MSGF *CHAR LEN(10)               /* FICHIER */
             DCL        &MSGFLIB *CHAR LEN(10)            /* BIBLI   */


|    Changer de couleur
     P O P   MONMSG     MSGID(CPF0000) EXEC(GOTO ERREUR)
 
 
 
             CHGVAR     VAR(&OBJ) VALUE(%SST(&FULLOBJ 1 10))
             CHGVAR     VAR(&LIB) VALUE(%SST(&FULLOBJ 11 10))
             RTVOBJD    OBJ(&LIB/&OBJ) OBJTYPE(&OBJTYPE) OWNER(&OWN)
             CHGVAR     VAR(&RESTE) VALUE(&BIN !! 'NEWOWN(' !! &OWN +
                          !! ')')
             RETURN            /* FIN NORMALE DU PGM               */
 
 
                               /* RENVOI DU MESSAGE D'ERREUR RECU  */
 ERREUR:     RCVMSG     MSGTYPE(*EXCP) MSGDTA(&MSGDTA) MSGID(&MSGID) +
                          MSGF(&MSGF) MSGFLIB(&MSGFLIB)
             SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
                          MSGDTA(&MSGDTA) MSGTYPE(*ESCAPE)
             ENDPGM
 
 
 
 


|    Changer de couleur
     C P P  
             PGM        PARM(&FULLOBJ &OBJTYPE &NEWOWN)
             DCL        VAR(&FULLOBJ) TYPE(*CHAR) LEN(20) /* Objet + +
                          bibli */
             DCL        VAR(&OBJTYPE) TYPE(*CHAR) LEN(10) /* Type de +
                          l'objet */
             DCL        VAR(&NEWOWN) TYPE(*CHAR) LEN(10) /* Nouveau +
                          proprio */
             DCL        VAR(&OBJ) TYPE(*CHAR) LEN(10)
             DCL        VAR(&LIB) TYPE(*CHAR) LEN(10)
 /* VARIABLES UTILISEES PAR LA GESTION DE MESSAGES */              DCL        &MSGID *CHAR LEN(7)               /* ID MSG  */              DCL        &MSGDTA *CHAR LEN(100)            /* DATA    */              DCL        &MSGF *CHAR LEN(10)               /* FICHIER */              DCL        &MSGFLIB *CHAR LEN(10)            /* BIBLI   */              MONMSG     MSGID(CPF0000) EXEC(GOTO ERREUR)                CHGVAR     VAR(&OBJ) VALUE(%SST(&FULLOBJ 1 10))              CHGVAR     VAR(&LIB) VALUE(%SST(&FULLOBJ 11 10))
             CHGOBJOWN  OBJ(&LIB/&OBJ) OBJTYPE(&OBJTYPE) +                           NEWOWN(&NEWOWN) CUROWNAUT(*REVOKE)  


|    Changer de couleur
/* RENVOI DES MESSAGES DE TYPE *COMP SI FIN NORMALE */

COMPMSG:    RCVMSG     MSGTYPE(*COMP) MSGDTA(&MSGDTA) MSGID(&MSGID)+
                        MSGF(&MSGF) MSGFLIB(&MSGFLIB)
            IF         (&MSGID *EQ '       ') RETURN  /*FIN DU PGM*/
            SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
                        MSGDTA(&MSGDTA) MSGTYPE(*COMP)
            GOTO       COMPMSG /* BOUCLE SUR MESSAGES *COMP      */

/* RENVOI DU MESSAGE D'ERREUR RECU  */
ERREUR:     RCVMSG     MSGTYPE(*EXCP) MSGDTA(&MSGDTA) MSGID(&MSGID)+
                        MSGF(&MSGF) MSGFLIB(&MSGFLIB)
           SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
                        MSGDTA(&MSGDTA) MSGTYPE(*ESCAPE)
ENDPGM




©AF400