CPP CRTFILREF (suppose les fichier BD traités)

BoTTom |
/*                                                                   */
/* ATTENTION: CE PGM EST LIVRE A TITRE D'EXEMPLE.                    */
/*                                                                   */
/* IL N'A PAS ETE TESTE DANS UN ENVIRONNEMENT NORMAL D'ENTREPRISE.   */
/*            L'UTILISATION ET LA MISE AU POINT EST DONC SOUS        */
/*            VOTRE RESPONSABILITE.                                  */
/*           ----------------------                                  */
             PGM        PARM(&FL &EXEC &INFL &DBR)
             DCL        &LOG *CHAR 20
             DCL        &FL *CHAR 20
             DCL        &EXEC *CHAR 5
             DCL        &INFL *CHAR 20
             DCL        &DBR *CHAR 4
             DCL        &FLAG *LGL
             DCL        &MSGID *CHAR LEN(7)
             DCL        &MSGDTA *CHAR LEN(100)
             DCL        &MSGF *CHAR LEN(10)
             DCL        &MSGFLIB *CHAR LEN(10)
             DCLF QADSPDBR
             MONMSG     MSGID(CPF0000) EXEC(GOTO ERR1) /* Std err */
             IF (&EXEC *EQ '*YES') THEN(DO)
                  DSPPGMREF  PGM(*CURLIB/*ALL) OUTPUT(*OUTFILE) +
                               OUTFILE(QTEMP/PGMREF)
                  CHGVAR &INFL 'PGMREF    QTEMP'
             ENDDO
             ELSE DO
             CHKOBJ     OBJ(%SST(&INFL 11 10)/%SST(&INFL 1 10)) +
                          OBJTYPE(*FILE)
             ENDDO
 
             CALL CRTFILREF2 PARM(&FL &INFL)
             IF (&DBR *EQ '*NO') THEN(GOTO FIN)
             DSPDBR     FILE(%SST(&FL 11 10)/%SST(&FL 1 10)) +
                          OUTPUT(*OUTFILE) OUTFILE(QTEMP/FILDBR)
             OVRDBF     FILE(QADSPDBR) TOFILE(QTEMP/FILDBR)
 LECTURE:    RCVF
               MONMSG CPF0864 EXEC(GOTO FIN)
               IF (&WHNO *EQ 0) GOTO FIN
             CHGVAR     VAR(&LOG) VALUE(&whrefi *cat &whreli)
             CALL  CRTFILREF2 PARM(&LOG &INFL)
             GOTO LECTURE
 
 FIN:
             DLTOVR QADSPDBR


|
              MONMSG CPF0000
              RETURN
 ERR1:
             IF         &FLAG SNDPGMMSG MSGID(CPF9999) +
                          MSGF(QCPFMSG) MSGTYPE(*ESCAPE)
             CHGVAR     &FLAG '1'
 ERR2:       RCVMSG     MSGTYPE(*DIAG) MSGDTA(&MSGDTA) MSGID(&MSGID) +
                          MSGF(&MSGF) MSGFLIB(&MSGFLIB)
             IF         (&MSGID *EQ '       ') GOTO ERR3
             SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
                          MSGDTA(&MSGDTA) MSGTYPE(*DIAG)
             GOTO       ERR2
 ERR3:       RCVMSG     MSGTYPE(*EXCP) MSGDTA(&MSGDTA) MSGID(&MSGID) +
                          MSGF(&MSGF) MSGFLIB(&MSGFLIB)
             SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
                          MSGDTA(&MSGDTA) MSGTYPE(*ESCAPE)
             ENDPGM




©AF400