
|
PGM PARM(&OBJ &LIB &RMTNAM &PWD &TYP &AUTO &F4 &MBR)
DCL &OBJ *CHAR 10
DCL &LIB *CHAR 10
DCL &RMTNAM *CHAR 10
DCL &PWD *CHAR 10
DCL &TYP *CHAR 8
DCL &AUTO *CHAR 4
DCL &F4 *LGL
DCL &MBR *CHAR 10
DCL &CMD *CHAR 32
/* 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 */
DCL VAR(&EXEC) TYPE(*CHAR) LEN(1024)
DCL VAR(&LG) TYPE(*DEC) LEN(15 5) VALUE(1024)
DCL VAR(&CHG) TYPE(*LGL)
MONMSG MSGID(CPF0000) EXEC(GOTO ERREUR)
 
/* CORPS DU PROGRAMME */
 
CLRSAVF FILE(AF4TOOL/LOCSAVF)
RCVMSG MSGTYPE(*COMP)
IF (&OBJ *EQ '*CHG') DO
CHGVAR &CHG '1'
CHGVAR &EXEC 'SAVCHGOBJ'
IF &F4 +
CHGVAR &EXEC (&EXEC *BCAT '??REFDATE() ??REFTIME()')
CHGVAR &OBJ '*ALL'
ENDDO
ELSE DO
CHGVAR &CHG '0'
CHGVAR &EXEC 'SAVOBJ'
ENDDO
IF &F4 DO
CHGVAR &EXEC VALUE(&EXEC *BCAT +
'??OBJ(' *CAT &OBJ *TCAT ') ?*LIB(' *CAT &LIB *TCAT ') DEV(*SAVF) +
?*OBJTYPE(' *CAT &TYP *TCAT ') SAVF(LOCSAVF) UPDHST(*NO) +
??PRECHK(*N) ??ACCPTH(*N) ??SAVFDTA(*N)' )
 
IF COND((&TYP *EQ '*FILE') & (*NOT &CHG)) THEN(DO)
CHGVAR &EXEC VALUE(&EXEC *BCAT +
|
'??FILEMBR((' *CAT &OBJ *BCAT '(' *CAT &MBR *TCAT ')))' )
ENDDO
ELSE DO
CHGVAR &EXEC VALUE(&EXEC *BCAT +
'??FILEMBR()' )
ENDDO
CALL PGM(QCMDCHK) PARM(&EXEC &LG)
ENDDO
ELSE DO
CHGVAR &EXEC VALUE(&EXEC *BCAT +
'OBJ(' *CAT &OBJ *TCAT ') LIB(' *CAT &LIB *TCAT ') DEV(*SAVF) +
OBJTYPE(' *CAT &TYP *TCAT ') SAVF(LOCSAVF) UPDHST(*NO)' )
 
IF COND((&TYP *EQ '*FILE') & (&MBR *NE '*ALL') +
& (*NOT &CHG)) THEN(DO)
CHGVAR &EXEC VALUE(&EXEC *BCAT +
'FILEMBR((' *CAT &OBJ *BCAT '(' *CAT &MBR *TCAT ')))' )
ENDDO
ENDDO
SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) +
MSGDTA('Sauvegarde des objets') +
TOPGMQ(*EXT) MSGTYPE(*STATUS)
CALL PGM(QCMDEXC) PARM(&EXEC &LG)
 
CPYSAVF FROM(AF4TOOL/LOCSAVF) FROMSAVF(*YES) +
TO(AF4TOOL/TMPSAVF) TOSAVF(*NO) +
OPTION(*REPLACE) CRTFILE(*YES)
FTS OPTION(*SND) RMTS36(*NO) RMTLOCNAME(&RMTNAM) +
PASSWORD(&PWD) FROMFILE(TMPSAVF) +
REPLACE(*YES) FROMLIB(AF4TOOL)
CLRSAVF FILE(AF4TOOL/LOCSAVF)
IF (&AUTO = '*YES') DO
SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Demande +
de réception émise') TOPGMQ(*EXT) +
MSGTYPE(*STATUS)
CHGVAR VAR(&CMD) VALUE('RMTASCMD CMD( +
AF4TOOL/RCVNETOBJ ' !! &LIB !! ') +
DDMFILE(*RMTLOCNAME) RMTLOCNAME(' +
!! &RMTNAM !! ')')
CALL QCMDEXC PARM(&CMD 512)
ENDDO
 
/* RENVOI DES MESSAGES DE TYPE *COMP SI FIN NORMALE */
INFOMSG: RCVMSG MSGTYPE(*INFO) MSGDTA(&MSGDTA) MSGID(&MSGID) +
|
MSGF(&MSGF) MSGFLIB(&MSGFLIB) IF (&MSGID *EQ ' ') GOTO COMPMSG SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) + MSGDTA(&MSGDTA) MSGTYPE(*INFO) GOTO INFOMSG /* BOUCLE SUR MESSAGES *COMP */ 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 |