
|
PGM PARM(&NOMOBJ &OBJTYP &TXT &NEWNAM &COD) /* */ /* CPP IDENTIQUE POUR LES COMMANDES : */ /* */ /* --CODE S STROBJSEU STRSEU à PARTIR/OBJET */ /* T CHGOBJSRCT MODIF TEXTE OBJ ET SRC*/ /* R RNMOBJSRC RENOME OBJ ET SRC */ /* D DLTOBJSRC DLT OBJ ET SRC */ /* */ /* */ DCL VAR(&NOMOBJ) TYPE(*CHAR) LEN(20) DCL VAR(&OBJTYP) TYPE(*CHAR) LEN(7) DCL VAR(&TXT) TYPE(*CHAR) LEN(50) DCL VAR(&NEWNAM) TYPE(*CHAR) LEN(10) DCL VAR(&COD) TYPE(*CHAR) LEN(1) 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 */ DCL &SRCL *CHAR 10 DCL &SRCF *CHAR 10 DCL &SRCM *CHAR 10 DCL &RTNLIB *CHAR 10 DCL &CHGINFO *CHAR 42 DCL &ERRCOD *CHAR 4 MONMSG MSGID(CPF0000) EXEC(GOTO ERREUR) /* CHGOBJSRCT */ IF (&COD *EQ 'T') DO CHGOBJD OBJ(%SST(&NOMOBJ 11 10)/%SST(&NOMOBJ 1 10)) + OBJTYPE(&OBJTYP) TEXT(&TXT) ENDDO /* RNMOBJSRC */ IF (&COD *EQ 'R') DO RNMOBJ OBJ(%SST(&NOMOBJ 11 10)/%SST(&NOMOBJ 1 10)) + OBJTYPE(&OBJTYP) NEWOBJ(&NEWNAM) CHGVAR VAR(%SST(&NOMOBJ 1 10)) VALUE(&NEWNAM) ENDDO /* DANS TOUS LES CAS */ RTVOBJD OBJ(%SST(&NOMOBJ 11 10)/%SST(&NOMOBJ 1 10)) + OBJTYPE(&OBJTYP) RTNLIB(&RTNLIB) MONMSG MSGID(CPF0000) EXEC(GOTO SRCPRB) RTVPGMSRC PGM(%SST(&NOMOBJ 11 10)/%SST(&NOMOBJ 1 10)) + RTNSRCF(&SRCF) RTNSRCL(&SRCL) RTNSRCM(&SRCM) |
MONMSG MSGID(CPF0000) EXEC(GOTO SRCPRB)   CHGVAR %SST(&NOMOBJ 11 10) &RTNLIB CHKOBJ OBJ(&SRCL/&SRCF) OBJTYPE(*FILE) + MBR(&SRCM) MONMSG MSGID(CPF0001) EXEC(GOTO SRCPRB) /* CHGOBJSRCT */ IF (&COD *EQ 'T') DO CHGPFM FILE(&SRCL/&SRCF) MBR(&SRCM) TEXT(&TXT) ENDDO /* STROBJSEU */ IF (&COD *EQ 'S') DO STRSEU SRCFILE(&SRCL/&SRCF) SRCMBR(&SRCM) RTVMBRD FILE(&SRCL/&SRCF) MBR(&SRCM) TEXT(&TXT) CHGOBJD OBJ(%SST(&NOMOBJ 11 10)/%SST(&NOMOBJ 1 10)) + OBJTYPE(&OBJTYP) TEXT(&TXT) ENDDO /* RNMOBJSRC */ IF (&COD *EQ 'R') DO RNMM FILE(&SRCL/&SRCF) MBR(&SRCM) + NEWMBR(&NEWNAM) /* API QUI PERMET DE MODIFIER LES INFOS DANS L'OBJET */   CHGVAR %BIN(&CHGINFO 1 4) 1 /* NBR DE MODIFS E */ CHGVAR %BIN(&CHGINFO 5 4) 1 /* CLE 1 = MODIF SOURCE */ CHGVAR %BIN(&CHGINFO 9 4) 30 /* LG MODIF */ CHGVAR %SST(&CHGINFO 13 30) + (&SRCF *CAT &SRCL *CAT &NEWNAM) CHGVAR %BIN(&ERRCOD) 0 CALL QLICOBJD PARM( + &RTNLIB + &NOMOBJ + &OBJTYP + &CHGINFO + &ERRCOD ) ENDDO /* DLTOBJSRC */ IF (&COD *EQ 'D') DO RMVM FILE(&SRCL/&SRCF) MBR(&SRCM) IF COND(&OBJTYP = '*FILE') THEN(DLTF + FILE(%SST(&NOMOBJ 11 10)/%SST(&NOMOBJ 1 10))) IF COND(&OBJTYP = '*PGM') THEN(DLTPGM + PGM(%SST(&NOMOBJ 11 10)/%SST(&NOMOBJ 1 10))) IF COND(&OBJTYP = '*CMD') THEN(DLTCMD + |
CMD(%SST(&NOMOBJ 11 10)/%SST(&NOMOBJ 1 10)))
IF COND(&OBJTYP = '*MENU') THEN(DLTMNU +
MENU(%SST(&NOMOBJ 11 10)/%SST(&NOMOBJ 1 10)))
IF COND(&OBJTYP = '*TBL') THEN(DLTTBL +
TBL(%SST(&NOMOBJ 11 10)/%SST(&NOMOBJ 1 10)))
ENDDO
/* FIN ==> RENVOI DES MESSAGES DE TYPE *COMP */
GOTO COMPMSG
SRCPRB: SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) +
MSGDTA('Impossible de modifier le +
source') MSGTYPE(*DIAG)
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(CPF9999) +
MSGF(QCPFMSG) MSGTYPE(*ESCAPE) /* 2EME FOIS*/
/* ARRET PGM*/
CHGVAR &ERRORSW '1' /* MISE EN PLACE DU SWTICH */
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 */
EXCPMSG: RCVMSG MSGTYPE(*EXCP) MSGDTA(&MSGDTA) MSGID(&MSGID) +
MSGF(&MSGF) SNDMSGFLIB(&MSGFLIB)
SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
MSGDTA(&MSGDTA) MSGTYPE(*ESCAPE)
ENDPGM
|