PGM PARM(&LIB)
DCL VAR(&LIB) TYPE(*CHAR) LEN(10)
DCL VAR(&SYSASP) TYPE(*DEC) LEN(15 0)
DCL VAR(&SYSASPUSED) TYPE(*DEC) LEN(15 4)
DCL VAR(&TAMAÑO) TYPE(*DEC) LEN(15 0)
DCL VAR(&TAMAÑOC) TYPE(*CHAR) LEN(15)
DCL VAR(&SYSASPC) TYPE(*CHAR) LEN(15)
DCL VAR(&PORCEN) TYPE(*DEC) LEN(5 2)
DCL VAR(&PORCENC) TYPE(*CHAR) LEN( 7)
DCL VAR(&STS) TYPE(*CHAR) LEN(1)
DCL VAR(&USER) TYPE(*CHAR) LEN(10)
DCL VAR(&SIZE) TYPE(*DEC) LEN(15 0)
DCLF FILE(QADSPOBJ) RCDFMT(*ALL)
RTVJOBA TYPE(&STS) USER(&USER)
CHKOBJ QSYS/&LIB *LIB
MONMSG CPF0000 EXEC(DO)
IF (&STS = '1') DO
SNDPGMMSG MSG('No se ha encontrado la biblioteca '
+
|| &LIB)
ENDDO
ELSE DO
SNDMSG MSG('No se ha encontrado la biblioteca ' +
|| &LIB) TOUSR(&USER)
ENDDO
ENDDO
DSPOBJD OBJ(&LIB/*ALL) OBJTYPE(*ALL) +
OUTPUT(*OUTFILE) OUTFILE(QTEMP/ANZLIBF)
OVRDBF QADSPOBJ QTEMP/ANZLIBF OVRSCOPE(*JOB)
START:
RCVF *FILE
MONMSG CPF0864 EXEC(GOTO END_PGM)
CHGVAR &SIZE (&SIZE + &ODOBSZ)
GOTO START
END_PGM:
CALL TOL872C (&SYSASPUSED &SYSASP)
CHGVAR &SYSASP (&SYSASP * 1000000)
CHGVAR &TAMAÑOC &SIZE
CHGVAR &SYSASPC &SYSASP
CHGVAR &PORCEN ((&SIZE / &SYSASP) * 100
)
CHGVAR &PORCENC &PORCEN
IF (&STS = '1') DO
SNDPGMMSG MSG(' Tamaño de ' || &LIB |< ' es
de ' || &tamaÑoc || ' +
sobre ' || &sysaspc || ' , ' || +
&porcenc || '%')
ENDDO
ELSE DO
SNDMSG MSG(' Tamaño de ' || &lib |< ' es de
' || &tamaÑoc || ' +
sobre ' || &sysaspc || ' , ' || +
&porcenc || '%') TOUSR(&USER)
ENDDO
DLTOVR *ALL LVL(*JOB)
ENDPGM
Pgm TOL872C
PGM (&SYSASPUSED &SYSASP)
DCL VAR(&RCVVAR) TYPE(*CHAR) LEN(68)
DCL VAR(&RCVVARLEN) TYPE(*CHAR) LEN(4)
DCL VAR(&FORMAT) TYPE(*CHAR) LEN(8)
DCL VAR(&RESET) TYPE(*CHAR) LEN(10)
DCL VAR(&BIN4NBR) TYPE(*CHAR) LEN(4)
DCL VAR(&DEC15NBR) TYPE(*DEC) LEN(15 0)
DCL VAR(&SYSASP) TYPE(*DEC) LEN(15 0)
DCL VAR(&SYSASPUSED) TYPE(*DEC) LEN(15 4)
DCL VAR(&TOTAUXSTG) TYPE(*DEC) LEN(15 0)
DCL VAR(&CURUNPUSED) TYPE(*DEC) LEN(15 0)
DCL VAR(&MAXUNPUSED) TYPE(*DEC) LEN(15 0)
DCL VAR(&APIERROR) TYPE(*CHAR) LEN(272)
DCL VAR(&BYTESPROV) TYPE(*CHAR) LEN(4)
DCL VAR(&BYTESAVAIL) TYPE(*CHAR) LEN(4)
DCL VAR(&MSGID) TYPE(*CHAR) LEN(7)
DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(256)
DCL VAR(&MSGF) TYPE(*CHAR) LEN(10)
DCL VAR(&MSGFLIB) TYPE(*CHAR) LEN(10)
/* ===============================================================
/* = Monitor Global de Errores =
/* ===============================================================
*/
MONMSG MSGID(CPF0000 MCH0000) EXEC(GOTO CMDLBL(ERROR))
/* ===============================================================
*/
/* = Inicializar Variables = */
/* ===============================================================
*/
CHGVAR VAR(&FORMAT) VALUE('SSTS0200')
CHGVAR VAR(&RESET) VALUE('*YES')
CHGVAR VAR(%BIN(&RCVVARLEN)) VALUE(68)
CHGVAR VAR(%BIN(&BYTESPROV)) VALUE(272)
CHGVAR VAR(%BIN(&BYTESAVAIL)) VALUE(0)
CHGVAR VAR(%SST(&APIERROR 1 4)) VALUE(&BYTESPROV)
CHGVAR VAR(%SST(&APIERROR 5 4)) VALUE(&BYTESAVAIL)
/* ===============================================================
*/
/* = Recuperar Informacion de estado del sistema
= */
/* ===============================================================
*/
CALL PGM(QWCRSSTS) PARM(&RCVVAR &RCVVARLEN
+
&FORMAT &RESET &APIERROR)
/* ---------------------------------------------------------------
*/
/* - Verifica si existe algun tipo de Error - */
/* ---------------------------------------------------------------
*/
CHGVAR VAR(&BYTESAVAIL) VALUE(%SST(&APIERROR
5 4))
IF COND(%BIN(&BYTESAVAIL) *NE 0) THEN(DO)
CHGVAR VAR(&MSGID) VALUE(%SST(&APIERROR 9
7))
CHGVAR VAR(&MSGDTA) VALUE(%SST(&APIERROR 17
256))
CHGVAR VAR(&MSGF) VALUE('QCPFMSG')
CHGVAR VAR(&MSGFLIB) VALUE('QSYS')
GOTO CMDLBL(SNDMSG)
ENDDO
/* ===============================================================
*/
/* = Extrae Informacion de Estado del Sistema = */
/* ===============================================================
*/
CHGVAR VAR(&BIN4NBR) VALUE(%SST(&RCVVAR 49
4))
CHGVAR VAR(&SYSASP) VALUE(%BIN(&BIN4NBR))
CHGVAR VAR(&BIN4NBR) VALUE(%SST(&RCVVAR 53
4))
CHGVAR VAR(&DEC15NBR) VALUE(%BIN(&BIN4NBR))
CHGVAR VAR(&SYSASPUSED) VALUE(&DEC15NBR /
10000)
CHGVAR VAR(&BIN4NBR) VALUE(%SST(&RCVVAR 57
4))
CHGVAR VAR(&TOTAUXSTG) VALUE(%BIN(&BIN4NBR))
CHGVAR VAR(&BIN4NBR) VALUE(%SST(&RCVVAR 61
4))
CHGVAR VAR(&CURUNPUSED) VALUE(%BIN(&BIN4NBR))
CHGVAR VAR(&BIN4NBR) VALUE(%SST(&RCVVAR 65
4))
CHGVAR VAR(&MAXUNPUSED) VALUE(%BIN(&BIN4NBR))
/* ===============================================================
*/
/* = Despues de Esto acomodar los valores que se
quieren enviar = */
/* ===============================================================
*/
RETURN
/* ===============================================================
*/
/* = Rutina de Error = */
/* ===============================================================
*/
ERROR:
RCVMSG MSGTYPE(*EXCP) MSGDTA(&MSGDTA) MSGID(&MSGID)
+
MSGF(&MSGF) MSGFLIB(&MSGFLIB)
MONMSG MSGID(CPF0000 MCH0000)
SNDMSG:
SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF)
+
MSGDTA(&MSGDTA) MSGTYPE(*ESCAPE)
MONMSG MSGID(CPF0000 MCH0000)
ENDPGM