Mainframe Utility: STATTEXT

Return to Mainframe Utilities Page

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
            


Documentation


 STATTEXT is designed specifically to help an individual incrementally prepare
 their weekly status report by allowing them to enter a brief reminder of an
 accomplishment, as it occurs, into a PDS member by typing in a single command.

 STATTEXT makes an assumption that the individual has a PDS defined with a name
 in the format of "youruserid.STATUS".  When STATTEXT is invoked, the member
 INPRGRSS ("in progress") is appended with the text line that is passed by the
 user.

 The syntax to invoke STATTEXT is as follows:

 COMMAND ===> tso stattext text('completed analysis on pgm abcxyz99')

 When the  key is pressed, a "processing" message is displayed while
 STATTEXT appends the line to the INPRGRSS member prefixed by the current date.

 Presumeably, if used consistantly, by the end of the week, your list of
 accomplishments has been documented (at least with one-line reminders).  The
 INPRGRSS member can then be used to construct your weekly status report.  It is
 suggested that you rename INPRGRSS to something like WE940603 (for "Week Ending
 June 3rd, 1994") and then you'll also have a chronilogical record of your
 accomplishments....quite suitable for performance evaluation preparation time.

 One may also want to assign "TSO STATTEXT" to a PF key so that all that is
 needed is to type "text('klkjsdflkhdf')" and press a PF key to docuemnt an
 activity for your status report.
            


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.