
|
PGM PARM(&DTFLIF &DTTLIT &CRT) /*-------------------------------------------------------------------*/ DCL &DTFLIF *CHAR 20 /* Bibliothèque est dtaara de départ */ DCL &DTTLIT *CHAR 20 /* Bibliothèque est dtaara d'arrivé */ DCL &CRT *CHAR 04 /* Création de la dtaara */ DCL &DTF *CHAR 10 /* Dtaara de départ */ DCL &LIF *CHAR 10 /* Bibliothèque de départ */ DCL &DTT *CHAR 10 /* Dtaara de destination */ DCL &LIT *CHAR 10 /* Bibliothèque de destination */ DCL &CTF *CHAR 2000 /* Longueur MAX d'une dtaara */ DCL &TXT *CHAR 80 /* Message de premier niveau (erreur) */ /*-------------------------------------------------------------------*/ MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERR)) /* Formatage des variable recu */ CHGVAR VAR(&DTF) VALUE(%SST(&DTFLIF 01 10)) CHGVAR VAR(&LIF) VALUE(%SST(&DTFLIF 11 10)) CHGVAR VAR(&DTT) VALUE(%SST(&DTTLIT 01 10)) CHGVAR VAR(&LIT) VALUE(%SST(&DTTLIT 11 10)) IF COND(&LIF *EQ '*CURLIB') THEN(DO) RTVJOBA CURLIB(&LIF) ENDDO IF COND(&LIT *EQ '*CURLIB') THEN(DO) RTVJOBA CURLIB(&LIT) ENDDO IF COND((&DTF *NE '*LDA') *AND (&DTF *NE + '*PDA') *AND (&DTF *NE '*GDA')) THEN(DO) CHKOBJ OBJ(&LIF/&DTF) OBJTYPE(*DTAARA) ENDDO /* Si création */ IF COND(&CRT *EQ '*YES') THEN(DO) IF COND(&LIF *EQ '*LIBL') THEN(DO) IF COND((&DTF *NE '*LDA') *AND (&DTF *NE + '*PDA') *AND (&DTF *NE '*GDA')) THEN(DO) RTVOBJD OBJ(&DTF) OBJTYPE(*DTAARA) RTNLIB(&LIF) ENDDO ENDDO IF COND(&LIT *EQ '*LIBL') THEN(DO) RTVJOBA CURLIB(&LIT) ENDDO IF COND((&DTF *NE '*LDA') *AND (&DTF *NE + '*PDA') *AND (&DTF *NE '*GDA')) THEN(DO) CRTDUPOBJ OBJ(&DTF) FROMLIB(&LIF) OBJTYPE(*DTAARA) + TOLIB(&LIT) NEWOBJ(&DTT) ENDDO |
GOTO CMDLBL(FIN)
ENDDO
ELSE CMD(DO)
IF COND((&DTT *NE '*LDA') *AND (&DTT *NE +
'*PDA') *AND (&DTT *NE '*GDA')) THEN(DO)
CHKOBJ OBJ(&LIT/&DTT) OBJTYPE(*DTAARA)
ENDDO
ENDDO
/* Lecture de la dtaara de départ */
IF COND((&DTF *NE '*LDA') *AND (&DTF *NE +
'*PDA') *AND (&DTF *NE '*GDA')) THEN(DO)
RTVDTAARA DTAARA(&LIF/&DTF) RTNVAR(&CTF)
ENDDO
ELSE CMD(DO)
RTVDTAARA DTAARA(&DTF) RTNVAR(&CTF)
ENDDO
/* Ecriture de la nouvelle valeur de la dtaara */
IF COND((&DTT *NE '*LDA') *AND (&DTT *NE +
'*PDA') *AND (&DTT *NE '*GDA')) THEN(DO)
CHGDTAARA DTAARA(&LIT/&DTT) VALUE(&CTF)
ENDDO
ELSE CMD(DO)
CHGDTAARA DTAARA(&DTT) VALUE(&CTF)
ENDDO
GOTO CMDLBL(FIN)
/* */
/* Sous programme de controle d'erreurs */
/* */
ERR: RCVMSG MSGTYPE(*EXCP) MSG(&TXT)
SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA(&TXT) +
MSGTYPE(*ESCAPE)
/* */
/* Fin de programme */
/* */
FIN:
SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Copie +
de la dtaara' *BCAT &DTF *BCAT 'dans la +
dtaara' *BCAT &DTT *BCAT 'effectué') +
MSGTYPE(*INFO)
ENDPGM
|