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
|