
|
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 |