Copier le contenu d'une dtaara

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




©AF400