Besides utility, u can get the required details using the following procedure:
Open PDS & type following in the command line,
"SAVE '2nd level qualifier' "
This will save all the members' name and attributes into a flat file named ..MEMBERS
Here is the illustration:
Code: |
VIEW VS059U.TEST.JCLLIB Row 00001 of 00008 Command ===> SAVE DETAILS Scroll ===> CSR Name Prompt Size Created Changed ID _________ JOINREC 39 2010/01/05 2010/01/05 04:31:00 VS059U _________ MATCHREC 52 2010/01/06 2010/01/06 03:09:28 VS059U _________ OUTREC01 31 2009/12/28 2009/12/28 01:32:03 VS059U _________ OUTREC1 34 2009/12/28 2009/12/29 00:14:57 VS059U _________ RECJOIN 43 2010/01/05 2010/01/05 05:36:02 VS059U _________ SAMUNSTR 25 2009/12/23 2009/12/23 05:43:54 VS059U _________ SUMOVRLY 34 2009/12/29 2009/12/29 01:20:16 VS059U _________ TSTCOUNT 35 2010/01/05 2010/01/05 04:20:55 VS059U **End** |
The dataset where details are saved will look like this:
Code: |
VIEW VS059U.DETAILS.MEMBERS Columns 00009 00080 Command ===> Scroll ===> CSR ****** ***************************** Top of Data ****************************** 000001 JOINREC 01.75 10/01/05 04:31 39 39 0 VS059U 000002 MATCHREC 01.03 10/01/06 03:09 52 52 0 VS059U 000003 OUTREC01 01.70 09/12/28 01:32 31 31 0 VS059U 000004 OUTREC1 01.71 09/12/29 00:14 34 31 0 VS059U 000005 RECJOIN 01.01 10/01/05 05:36 43 44 0 VS059U 000006 SAMUNSTR 01.68 09/12/23 05:43 25 1411 0 VS059U 000007 SUMOVRLY 01.71 09/12/29 01:20 34 34 0 VS059U 000008 TSTCOUNT 01.75 10/01/05 04:20 35 35 0 VS059U |
Quote: |
Do we have any utility to get the information of a PDS like the list of members present in a PDS, when they modified last time. |
Bill Dennis wrote: |
Go to ISPF Option 3.1 and print the index listing of the PDS (option 'X'). |
Do you know how to use JCL to print index listing of a PDS ?
You mean "IEHLIST with LISTPDS " ? |
Exactement |
The output of "IEHLIST with LISTPDS" is great different from PX line command (print index) in ISPF 3.4 menu, or using 'SAVE' primary command. |
(1) Go to www.jaymoseley.com/hercules/cbtware/listpds.htm
(2) Download listpds.tgz (There is a download link)
(3) Extract the source code from listpds.tgz. The source code is written by Assembler language.
(4) Upload the source to your MVS host
(5) Compile it. Remember using the following SYSLIB:
.
//SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR
// DD DSN=SYS1.MODGEN,DISP=SHR
.
//SYSLMOD DD DSN=SYS2.LINKLIB,DISP=SHR
.
(6) Submit the following JCL to run LISTPDS. For details, you may refer to point no. (1)
//JOBLIB DD DISP=SHR,DSN=SYS2.LINKLIB
//STEP1 EXEC PGM=LISTPDS
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//SYSLIB DD DISP=SHR,DSN=DRVUSER.JCL.SSL
Your final solution disregards the most elementary rules of a good organization what has been requested can be achieved using vanilla system utilities! loading and installing software without proper authorization is sometimes cause for lawful termination |
I provided the solution. There should be lot of procedures to follow for promoting such a program to production environment.
I copied it from another forum.
Step 1: Create the following REXX (saved it as "LIST01")
=============================================
/* REXX */
/* QUICK ISPF SAVE OF MEMBER STATS. */
ARG DS G
/* DS IS THE DATA SET NAME TO GET THE STATS FROM. */
/* G IS THE MIDDLE QUALIFER OF THE SAVED DATA SET */
/* THE SAVED DATA SET NAME WILL BE USERID.G.MEMBERS */
IF G = '' THEN G = 'LIST01'
IF DS = '' THEN DS = 'TCPIP.AEZAMODS'
ADDRESS ISPEXEC
"CONTROL ERRORS RETURN"
"LMINIT DATAID(STATID) DATASET('"DS"')"
IF RC = 0 THEN DO
"LMOPEN DATAID("STATID")"
"LMMLIST DATAID("STATID") OPTION(SAVE) STATS(YES) GROUP("G")"
END
"LMFREE DATAID("STATID")"
=============================================
Step 2: Create the following JCL:
=============================================
//ALOCPROF EXEC PGM=IEFBR14
//PROFILE DD UNIT=3390,DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(1,1,5)),DCB=(LRECL=80,
// BLKSIZE=0,DSORG=PO,RECFM=FB),VOL=SER=PSPP01,
// DSN=DRVUSER.ISPF.TEMPPROF
//*-------------------------------------------------------------------*
//* INVOKE ISPF *
//*-------------------------------------------------------------------*
//BATCHPDF EXEC PGM=IKJEFT01,DYNAMNBR=128
//ISPPLIB DD DISP=SHR,DSN=ISP.SISPPENU
//ISPSLIB DD DISP=SHR,DSN=ISP.SISPSLIB
// DD DISP=SHR,DSN=ISP.SISPSENU
//ISPMLIB DD DISP=SHR,DSN=ISP.SISPMENU
//ISPPROF DD DSN=DRVUSER.ISPF.TEMPPROF,DISP=(OLD,DELETE)
//ISPTABL DD DSN=DRVUSER.ISPF.TEMPPROF,DISP=OLD
//ISPTLIB DD DSN=DRVUSER.ISPF.TEMPPROF,DISP=OLD
// DD DISP=SHR,DSN=ISP.SISPTENU
//ISPLOG DD SYSOUT=*,
// DCB=(LRECL=120,BLKSIZE=2400,DSORG=PS,RECFM=FB)
//ISPLIST DD SYSOUT=*,
// DCB=(LRECL=121,BLKSIZE=1210,RECFM=FBA)
//* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//SYSEXEC DD DISP=SHR,DSN=ISP.SISPEXEC
//SYSPROC DD DISP=SHR,DSN=ISP.SISPCLIB
// DD DISP=SHR,DSN=DRVUSER.JCL.CNTL //SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
PROFILE PREFIX(DRVUSER)
ISPSTART CMD(%LIST01) NEWAPPL(ISR)
=============================================
You will get the print PDS listing formatted output or "SAVE" PDS listing output.
View Bookmarks All times are GMT + 6 Hours |