CPP de la commande CRTILE

BoTTom |
             PGM        PARM(&OBJQUAL &TYPE &SRCQUAL &MBR &BNDDIR)
             DCL        VAR(&OBJQUAL) TYPE(*CHAR) LEN(20)
             DCL        VAR(&TYPE) TYPE(*CHAR) LEN(7)
             DCL        VAR(&SRCQUAL) TYPE(*CHAR) LEN(20)
             DCL        VAR(&MBR) TYPE(*CHAR) LEN(10)
             DCL        VAR(&BNDDIR) TYPE(*CHAR) LEN(10)
 
             DCL &SRCTYPE *CHAR 10
             DCL &TEXT    *CHAR 50
 
 /* VARIABLES UTILISEES PAR LA GESTION DE MESSAGES */
             DCL        &ERRORSW *LGL                     /* SWITCH  */
             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 CMDLBL(ERREUR))
 
 /* CORPS DU PROGRAMME */
 
             CHKOBJ     OBJ(%SST(&SRCQUAL 1 10)/%SST(&SRCQUAL 11 +
                          10)) OBJTYPE(*FILE) MBR(&MBR) AUT(*USE)
 
             CHKOBJ     OBJ(&BNDDIR) OBJTYPE(*BNDDIR)
             MONMSG     MSGID(CPF9801) EXEC(CRTBNDDIR +
                          BNDDIR(%SST(&OBJQUAL 11 10)/&BNDDIR) +
                          TEXT('répertoire de liage créé +
                          automatiquement'))
 
             RTVMBRD    FILE(%SST(&SRCQUAL 1 10)/%SST(&SRCQUAL 11 +
                          10)) MBR(&MBR) SRCTYPE(&SRCTYPE) TEXT(&TEXT)
 
             IF         COND(&SRCTYPE = 'CLLE') THEN(CRTCLMOD +
                          MODULE(QTEMP/%SST(&OBJQUAL 1 10)) +
                          SRCFILE(%SST(&SRCQUAL 11 +
                          10)/%SST(&SRCQUAL 1 10)) SRCMBR(&MBR) +
                          DBGVIEW(*SOURCE))
             IF         COND(&SRCTYPE = 'RPGLE') THEN(CRTRPGMOD +
                          MODULE(QTEMP/%SST(&OBJQUAL 1 10)) +
                          SRCFILE(%SST(&SRCQUAL 11 +
                          10)/%SST(&SRCQUAL 1 10)) SRCMBR(&MBR) +
                          DBGVIEW(*SOURCE))
 


|
 
             IF (&TYPE = '*PGM') THEN(DO)
             CRTPGM     PGM(%SST(&OBJQUAL 11 10)/%SST(&OBJQUAL 1 +
                          10)) MODULE(QTEMP/%SST(&OBJQUAL 1 10)) +
                          BNDDIR(&BNDDIR) ACTGRP(QILE)
             ENDDO
 
             IF (&TYPE = '*SRVPGM') THEN(DO)
             CRTSRVPGM  SRVPGM(%SST(&OBJQUAL 11 10)/%SST(&OBJQUAL 1 +
                          10)) MODULE(QTEMP/%SST(&OBJQUAL 1 10)) +
                          EXPORT(*ALL) TEXT(&TEXT) BNDDIR(&BNDDIR) +
                          ACTGRP(QILE)
             ADDBNDDIRE BNDDIR(%SST(&OBJQUAL 1 10)/&BNDDIR) +
                          OBJ((%SST(&OBJQUAL 11 10)/%SST(&OBJQUAL 1 +
                          10) *SRVPGM))
             ENDDO
 
             DLTMOD     MODULE(QTEMP/%SST(&OBJQUAL 1 10))
 
 /* RENVOI DES MESSAGES DE TYPE *COMP SI FIN NORMALE */
 COMPMSG:    RCVMSG     MSGTYPE(*COMP) MSGDTA(&MSGDTA) MSGID(&MSGID) +
                          MSGF(&MSGF) SNDMSGFLIB(&MSGFLIB)
             IF         (&MSGID *EQ '       ') RETURN  /* FIN DU PGM */
             SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
                          MSGDTA(&MSGDTA) MSGTYPE(*COMP)
             GOTO       COMPMSG /* BOUCLE SUR MESSAGES *COMP      */
 
 
              /*----------------------------------------*/
 ERREUR:      /*        GESTION DES ERREURS             */
              /*----------------------------------------*/
             IF         &ERRORSW SNDPGMMSG MSGID(CPF9899) +
                          MSGF(QCPFMSG) MSGTYPE(*ESCAPE) /* 2EME FOIS*/
                                                         /* ARRET PGM*/
             CHGVAR     &ERRORSW '1' /* MISE EN PLACE DU SWITCH     */
 
 /* RENVOI DES MESSAGES DE TYPE *DIAG SI FIN ANORMALE */
 DIAGMSG:    RCVMSG     MSGTYPE(*DIAG) MSGDTA(&MSGDTA) MSGID(&MSGID) +
                          MSGF(&MSGF) SNDMSGFLIB(&MSGFLIB)
             IF         (&MSGID *EQ '       ') GOTO EXCPMSG
             SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
                          MSGDTA(&MSGDTA) MSGTYPE(*DIAG)
             GOTO       DIAGMSG /* BOUCLE SUR MESSAGES *DIAG      */
 


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




©AF400