pgm batch OVRDBF-DSPF et appel CPYDSPG

BoTTom |
             PGM
             DCL &DA *CHAR 200
             DCL        VAR(&P) TYPE(*DEC) LEN(3 0) VALUE(-9)
             DCL        VAR(&CMD) TYPE(*CHAR) LEN(2000) +
                          VALUE('OVRDSPF CPYDSPD DEV(')
             DCL &ECRAN *CHAR 10
             DCL &ERROR *LGL
 
 /* RECHERCHE DES éCRANS ET OVRDSPF (ECRANS MULTIPLES) */
             RTVDTAARA  DTAARA(*LDA (1 200)) RTNVAR(&DA)
 BOUCLE:     CHGVAR &P (&P + 10)
             IF (&P *LT 200) DO
             IF (%SST(&DA &P 10) *NE ' ') DO
             CHGVAR &CMD (&CMD *BCAT %SST(&DA &P 10))
             GOTO BOUCLE
             ENDDO
             ENDDO
             CHGVAR     VAR(&CMD) VALUE(&CMD *TCAT ')')
             CALL       PGM(QCMDEXC) PARM(&CMD 2000)
/* ATTENTE ILLIMITE SUR FICHIER PHYSIQUE CONTENANT +
    LE RESULTAT DU TéLéMIROIR SYSTEME (PF DE TRAVAIL) */
             OVRDBF     FILE(CPYDSPP) EOFDLY(1)
/* APPEL DU PGM QUI VA AQUERIR TOUS LES ECRANS */
             CALL       PGM(CPYDSPG) PARM('ACQ' &ERROR)
/* ERREUR (ECRAN NON DISPONIBLE */
             RTVDTAARA  DTAARA(*LDA (201 10)) RTNVAR(&ECRAN)
             IF &ERROR DO
             CHGJOB     LOG(4 00 *SECLVL)
             SNDBRKMSG  MSG('Télémiroir non démarré') TOMSGQ(&ECRAN)
             ENDDO
             ELSE DO
/* DéMARRAGE DU TéLéMIROIR SYSTéME (SORTIE = PF DE TRAVAIL) */
             STRCPYSCN  SRCDEV(&ECRAN) OUTDEV(*NONE) OUTFILE(CPYDSPP)
/* APPEL DU PGM QUI VA AFFICHER SUR TOUS LES ECRANS */
             CALL       PGM(CPYDSPG) PARM('WTR' &ERROR)
             ENDDO
             ENDPGM




©AF400