Return to Mainframe Utilities Page
Module
PROC 1 TDSN --------
/*** CHECK THE DEBUG SWITCH ***/
ISPEXEC VGET DBGSWTCH PROFILE
IF &DBGSWTCH = ON THEN +
CONTROL MSG LIST CONLIST SYMLIST NOFLUSH NOPROMPT ASIS
ELSE +
CONTROL NOMSG NOLIST NOFLUSH NOPROMPT ASIS
IF &STR(&TDSN) = HELP THEN GOTO HELPSEC
/**********************************************************************
/* UTILITY: $TDATE *
/* AUTHOR: DAVID LEIGH *
/* FUNCTION: CALL "TMSBINQ" TO FIND OUT THE CREATE DATE ON A TAPE *
/* DATASET AND PLACE IT INTO TMS. *
/**********************************************************************
IF &SYSINDEX(&STR('),&STR(&TDSN)) = 1 THEN +
SET TDSN = &SUBSTR(2:&LENGTH(&STR(&TDSN))-1,&STR(&TDSN))
ELSE +
SET TDSN = &STR(&SYSUID..&TDSN)
SET ZEDLMSG = &STR(*** GETTING CREATE DATE FOR "&TDSN" ***)
ISPEXEC CONTROL DISPLAY LOCK
ISPEXEC DISPLAY MSG(UTLZ000W)
SET SYSRPTDSN = &STR(&SYSUID..TEMP.TMS.REPORT)
DELETE '&SYSRPTDSN'
FREE DDNAME(TMSRPT SYSIN)
ALLOC DD(TMSRPT) DSN('&SYSRPTDSN') +
NEW CATALOG +
UNIT(SYSDA) VOLUME(WRK$$$) +
SPACE(5,5) TRACKS RELEASE +
DSORG(PS) RECFM(F B) LRECL(133) BLKSIZE(23408)
ALLOC DD(SYSIN) +
NEW +
UNIT(SYSDA) VOLUME(WRK$$$) +
SPACE(1,1) TRACKS RELEASE +
RECFM(F B) LRECL(80) BLKSIZE(23440) DSORG(PS)
OPENFILE SYSIN OUTPUT
SET SYSIN = &STR(DSN=&TDSN,LONG)
PUTFILE SYSIN
CLOSFILE SYSIN
ISPEXEC SELECT PGM(TMSBINQ)
FREE DDNAME(SYSIN SYSPRINT)
/**********************************************************************
/* PARSE THE OUTPUT FILE FOR THE DATA WE'RE LOOKING FOR *
/**********************************************************************
ERROR DO
SET ERRCC = &LASTCC
SELECT (&ERRCC)
WHEN (400) DO
SET EOF = YES
RETURN
END
OTHERWISE DO
ERROR OFF
WRITE *** ERROR CC: &ERRCC OCCURRED READING A FILE ***
CLOSFILE TMSRPT
FREE DD(TMSRPT)
EXIT
END
END
END
SET SWITCH = OFF
SET EOF = NO
OPENFILE TMSRPT
GETFILE TMSRPT
DO WHILE &EOF = NO
IF &SYSINDEX(&STR( DSN=&TDSN),&STR(&SYSNSUB(1,&TMSRPT))) > 0 AND +
&SYSINDEX(&STR( DSN=&TDSN),&STR(&SYSNSUB(1,&TMSRPT))) < 30 THEN +
DO
GETLOOP: GETFILE TMSRPT
IF &SYSINDEX(&STR(CDATE=),&STR(&SYSNSUB(1,&TMSRPT))) > 0 +
THEN DO
SET A = +
&SYSINDEX(&STR(CDATE=),&STR(&SYSNSUB(1,&TMSRPT)))
SET A = &A + 6
SET Y = &A + 9
SET DATE = &SUBSTR(&A:&Y,&STR(&SYSNSUB(1,&TMSRPT)))
SET DATE = &SUBSTR(9:10,&STR(&DATE))+
&SUBSTR(1:2,&STR(&DATE))+
&SUBSTR(4:5,&STR(&DATE))
SET B = +
&SYSINDEX(&STR(CTIME=),&STR(&SYSNSUB(1,&TMSRPT)))
SET B = &B + 6
SET X = &B + 4
SET TIME = &SUBSTR(&B:&X,&STR(&SYSNSUB(1,&TMSRPT)))
SET ZDLMSG = &STR(D=&DATE T=&TIME)
ISPEXEC VPUT ZDLMSG
GOTO FINISH
END
ELSE GOTO GETLOOP
END
GETFILE TMSRPT
END
FINISH: +
ERROR OFF
CLOSFILE TMSRPT
FREE DD(TMSRPT)
EXIT
HELPSEC: + 02480000
ISPEXEC SELECT PGM(ISPTUTOR) PARM(HELPSHEL) 02490000
SET ZEDLMSG = &STR(*** HELP DISPLAYED FOR $TDATE UTILITY + 02490000
*** NO PROCESSING PERFORMED ***) 02490000
ISPEXEC SETMSG MSG(UTLZ000) 02490000
EXIT
Documentation
$TDATE is designed to be used specifically in the ISPF option 3.4 screen. By
placing $TDATE (or the alias $TD) next to a tape dataset name on the dataset
list screen and pressing enter, the create date and time of the tape dataset
will be displayed. This is not an instantaneous process, as TMS must be
queried to get this information, but it is fairly quick. The create date and
time will placed next to the dataset name in the format of "D=yyddd T=hhmm" (24
hour clock).

0 Comments