Go to LeighWeb Home Page            

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