Back To LeighWeb Mainframe Utilities Page
View the documentation associated with this module
/* REXX ***************************************************************/
/* UTILITY: STATTEXT */
/* AUTHOR: DAVID LEIGH */
/* FUNCTION: THIS UTILITY ALLOWS THE USER TO PASS A STRING OF TEXT TO */
/* BE APPENDED TO AN "IN-PROGRESS" STATUS MEMBER IN A PDS. */
/* THIS MEMBER WILL THEN BE USED TO HELP THE USER WRITE */
/* THEIR STATUS REPORT AT THE END OF THE WEEK. */
/**********************************************************************/
/**********************************************************************/
/* PARSE INITIAL INPUT AND SET VARIABLES */
/**********************************************************************/
PARSE ARG TEXT
USER = SYSVAR(SYSUID)
IN_PROGRESS = USER ¦¦ '.STATUS(INPRGRSS)'
ANYCC = 0
/**********************************************************************/
/* INFORM THE USER */
/**********************************************************************/
ADDRESS ISPEXEC
ZEDLMSG = '*** ADDING STATUS TEXT TO "'¦¦IN_PROGRESS¦¦'" ***'
'CONTROL DISPLAY LOCK'
'DISPLAY PANEL(MSGPANEL)'
/**********************************************************************/
/* EXECIO ANY EXISTING STATUS TEXT INTO A NEW STACK */
/**********************************************************************/
CALL OUTTRAP 'TEMP.'
ADDRESS TSO
"FREE DD(TEMPDD)"
"ALLOC DD(TEMPDD) DSN('"IN_PROGRESS"') SHR"
IF (RC > ANYCC) THEN ANYCC = RC
'NEWSTACK'
IF (SYSDSN("'"IN_PROGRESS"'") = "MEMBER NOT FOUND") THEN NOP
ELSE
DO
EXECIO '* DISKR TEMPDD (FINIS'
IF (RC > ANYCC) THEN ANYCC = RC
END
/**********************************************************************/
/* QUEUE THE TEXT INTO THE STACK */
/**********************************************************************/
QUEUE DATE(O) ¦¦ ' ' ¦¦ TEXT
WNUM = QUEUED()
EXECIO WNUM 'DISKW TEMPDD (FINIS'
IF (RC > ANYCC) THEN ANYCC = RC
'DELSTACK'
"FREE DD(TEMPDD)"
CALL OUTTRAP 'OFF'
/**********************************************************************/
/* SET MESSAGES AND GET OUT! */
/**********************************************************************/
IF (ANYCC > 4) THEN
DO
DO I = 1 TO TEMP.0
SAY TEMP.I
END
ZEDLMSG = '*** UPDATE TO "'IN_PROGRESS'" FAILED WITH
RC: 'GENERCC' ***'
ADDRESS ISPEXEC 'SETMSG MSG(UTLZ001W)'
END
ELSE
DO
ZEDLMSG = '*** STATUS TEXT WAS WRITTEN SUCCESSFULLY ***'
ADDRESS ISPEXEC 'SETMSG MSG(UTLZ000)'
END
|