CPP CRTMIPGM

BoTTom |
             PGM        PARM(&PGM &SRCF &SRCM &TXT &AUT &OPT)
             DCL &PGM  *CHAR 20
             DCL &SRCF *CHAR 20
             DCL &SRCM *CHAR 10
             DCL &TXT  *CHAR 50
             DCL &AUT  *CHAR 10
             DCL &OPT  *CHAR 178
             DCL &DAT  *CHAR 13
             DCL &CURLIB *CHAR 10
             DCL &SRCLIB *CHAR 10
             DCL &SRCTXT *CHAR 50
             DCL &ERRID  *CHAR 7
 /* VARIABLES UTILISEES PAR LA GESTION DE MESSGAES */
             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 ERREUR)
 
             IF (%SST(&PGM 11 10) = '*CURLIB') THEN(DO)
                RTVJOBA CURLIB(&CURLIB)
                CHGVAR %SST(&PGM 11 10) &CURLIB
             ENDDO
             IF (&SRCM = '*PGM') THEN(+
                CHGVAR &SRCM %SST(&PGM 1 10))
             RTVMBRD    FILE(%SST(&SRCF 11 10)/%SST(&SRCF 1 10)) +
                          MBR(&SRCM) RTNLIB(&SRCLIB) +
                          SRCCHGDATE(&DAT) TEXT(&SRCTXT)
             IF (%SST(&SRCF 11 10) = '*LIBL') THEN(+
                CHGVAR %SST(&SRCF 11 10) &SRCLIB)
             IF (&TXT = '*BLANK') THEN(+
                CHGVAR &TXT ' ')
             IF (&TXT = '*SRCMBRTXT') THEN(+
                CHGVAR &TXT &SRCTXT)
 
             OVRDBF     FILE(SRCFIC) TOFILE(%SST(&SRCF 11 +
                          10)/%SST(&SRCF 1 10)) MBR(&SRCM)
 
             CALL CRTPGMG PARM(&PGM   +
                               &TXT   +
                               &SRCF  +
                               &SRCM  +
                               &DAT   +


|
                               &AUT   +
                               &OPT   +
                               &ERRID )
 
             DLTOVR     FILE(SRCFIC)
 
             IF (&ERRID ^= ' ') DO
              SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Pgm non +
                          crée suite à erreur ' !! &ERRID) +
                          MSGTYPE(*ESCAPE)
             ENDDO
 
 /* 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      */
 
              /*----------------------------------------*/
 ERREUR:      /*        GESTION DES ERREURS             */
              /*----------------------------------------*/
             IF         &ERRORSW SNDPGMMSG MSGID(CPF9999) +
                          MSGF(QCPFMSG) MSGTYPE(*ESCAPE) /* 2EME FOIS*/
                                                         /* ARRET PGM*/
             CHGVAR     &ERRORSW '1' /* MISE EN PLACE DU SWTICH     */
 
 /* RENVOI DES MESSAGES DE TYPE *DIAG SI FIN ANORMALE */
 DIAGMSG:    RCVMSG     MSGTYPE(*DIAG) MSGDTA(&MSGDTA) MSGID(&MSGID) +
                          MSGF(&MSGF) MSGFLIB(&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) MSGFLIB(&MSGFLIB)
             SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
                          MSGDTA(&MSGDTA) MSGTYPE(*ESCAPE)
             ENDPGM




©AF400