View previous topic :: View next topic
|
Author |
Message |
genesis786
Active User
Joined: 28 Sep 2005 Posts: 210 Location: St Katherine's Dock London
|
|
|
|
Hi - I frequently get my PDS/PS archived after some time of non-use. Especially after browsing a code/listing in Endevor (which creates a PS file with my user id as HLQ), I forget about it and after a week when i try to browse the code again, it needs to be recalled back from the tape.
I am trying to build a small macro which would check every now and then which are the archived files belonging to my user id and then delete those (the specific ones from endevor for which i have a way to determine).
I was able to issue HDELETE (not sure if it is site specific) command to delete a file
Code: |
/* rexx */
dsn = "'USERID.XYZ.ABC.XREADX'"
address tso 'HDELETE 'dsn
exit
|
I am trying my head around knowing how can I figure out the archived files with my userid as HLQ. I am aware of the LISTDS for members of a PDS, is there something to list out the files (first DASD files and if possible TAPE ones as well) for the userid itself?
Thanks in advance. |
|
Back to top |
|
|
vasanthz
Global Moderator
Joined: 28 Aug 2007 Posts: 1742 Location: Tirupur, India
|
|
|
|
Have you tried something like
TSO HLIST LEVEL(USERID) MCDS |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
you can play with this/alter or modify according to your needs:
DBZHLIST
Code: |
/* REXX */
/* */
/* TSO DBZHLIST TTGI.BRENHOD */
/* WILL GENERATE HRECALLS FOR ALL DATASETS TTGI.BRENHOD */
/* */
/* TSO DBZHLIST TTGI.WORK */
/* WILL GENERATE HRECALLS FOR ALL DATASETS TTGI.WORK */
/* */
/* TSO DBZHLIST TTGI.UNIT.LG1 */
/* WILL GENERATE HRECALLS FOR ALL DATASETS TTGI.UNIT.LG1*/
/* */
/* */
ARG DUH_DS
/* TRACE ?R */
IF LENGTH(DUH_DS) < 1 THEN
DO
ZEDSMSG = "NO HLQ ENTERED"
ZEDLMSG = "YOU MUST ENTER A HLQ.NLQ ETC../TSO DBZHLIST HELP"
ADDRESS ISPEXEC "SETMSG MSG(ISRZ001)"
EXIT
END
IF DUH_DS = 'HELP' THEN
DO
SAY ' TSO DBZHLIST TTGI.BRENHOD '
SAY ' WILL GENERATE HRECALLS FOR ALL DATASETS TTGI.BRENHOD* '
SAY ' '
SAY ' TSO DBZHLIST TTGI.WORK '
SAY ' WILL GENERATE HRECALLS FOR ALL DATASETS TTGI.WORK* '
SAY ' '
SAY ' TSO DBZHLIST TTGI.UNIT.LG1 '
SAY ' WILL GENERATE HRECALLS FOR ALL DATASETS TTGI.UNIT.LG1* '
SAY ' '
SAY ' DO NOT USE * FOR WILDCARD '
EXIT
END
DUH_USER = USERID()
DSN = DUH_USER || '.TEST'
ADDRESS ISPEXEC 'CONTROL ERRORS RETURN'
ADDRESS TSO 'ALLOC F(OUT) DA('DSN') MOD DELETE TRACKS SPA(15 15) ' ,
' LRECL(80) RECFM(F B) BLKSIZE(0) DSORG(PS)'
IF RC > 0 THEN
DO
SAY 'DELETE ALLOCATION FAILED RC=:' RC
ADDRESS TSO 'FREE F(OUT)'
EXIT
END
ADDRESS TSO 'FREE F(OUT)'
/* */
/* FIND ALL MIGRATION LEVELS USE ML2 */
/* */
ADDRESS TSO
"HLIST LEVEL("DUH_DS") SELECT(ML2) OUTDATASET("DSN")"
INPUT1_STEM. = ''
DSN_STEM. = ''
DSN_STEM.0 = 0
ADDRESS TSO 'ALLOC F(IN) DA('DSN') OLD KEEP '
IF RC > 0 THEN
DO
SAY 'ALLOCATION FOR ML2 FAILED RC=:' RC
ADDRESS TSO 'FREE F(IN)'
EXIT
END
ADDRESS TSO 'EXECIO * DISKR IN (STEM INPUT1_STEM. FINIS)'
ADDRESS TSO 'FREE F(IN)'
/* TRACE ?R */
J = 0
DO I = 1 TO INPUT1_STEM.0
IF POS(DUH_DS,INPUT1_STEM.I) > 0 THEN
DO
PARSE VAR INPUT1_STEM.I DSN_FOR_INCLUSION .
J = J + 1
DSN_STEM.J = DSN_FOR_INCLUSION
END
END
DSN_STEM.0 = J
/* */
/* */
/* FIND ALL MIGRATION LEVELS USE ML1 */
/* */
ADDRESS TSO
"HLIST LEVEL("DUH_DS") SELECT(ML1) OUTDATASET("DSN")"
INPUT2_STEM. = ''
ADDRESS TSO 'ALLOC F(IN) DA('DSN') OLD KEEP '
IF RC > 0 THEN
DO
SAY 'ALLOCATION FOR ML1 FAILED RC=:' RC
ADDRESS TSO 'FREE F(IN)'
EXIT
END
ADDRESS TSO 'EXECIO * DISKR IN (STEM INPUT2_STEM. FINIS)'
ADDRESS TSO 'FREE F(IN)'
/* TRACE ?R */
DO I = 1 TO INPUT2_STEM.0
IF POS(DUH_DS,INPUT2_STEM.I) > 0 THEN
DO
PARSE VAR INPUT2_STEM.I DSN_FOR_INCLUSION .
SCHON_DA = 'N'
DO M = 1 TO J
IF DSN_STEM.M = DSN_FOR_INCLUSION THEN
DO
SCHON_DA = 'J'
LEAVE
END
END
IF SCHON_DA = 'N' THEN
DO
J = J + 1
DSN_STEM.J = DSN_FOR_INCLUSION
END
END
END
DSN_STEM.0 = J
/* */
/* */
OUTPUT_STEM. = ''
OUTPUT_STEM.1 = '//STEP1 EXEC PGM=IKJEFT01,REGION=512K'
OUTPUT_STEM.2 = '//SYSPRINT DD SYSOUT=*'
OUTPUT_STEM.3 = '//SYSTSPRT DD SYSOUT=*'
OUTPUT_STEM.4 = '//SYSTSIN DD *'
J = 4
DO I = 1 TO DSN_STEM.0
J = J + 1
OUTPUT_STEM.J = ' HRECALL ' || '7D'X || DSN_STEM.I || '7D'X
END
OUTPUT_STEM.0 = J
ADDRESS TSO 'ALLOC F(OUT) DA('DSN') OLD KEEP'
IF RC > 0 THEN
DO
SAY 'ALLOCATION FAILED RC=:' RC
ADDRESS TSO 'FREE F(OUT)'
EXIT
END
ADDRESS TSO 'EXECIO * DISKW OUT (STEM OUTPUT_STEM. FINIS)'
ADDRESS TSO 'FREE F(OUT)'
ADDRESS ISPEXEC "EDIT DATASET("DUH_USER".TEST) MACRO(JOBCARD)"
EXIT
|
JOBCARD
Code: |
/* REXX */
ADDRESS ISREDIT
'MACRO'
DUH_USER = USERID()
"COPY "DUH_USER".JCL(JOBCARD) BEFORE .ZF"
EXIT |
|
|
Back to top |
|
|
genesis786
Active User
Joined: 28 Sep 2005 Posts: 210 Location: St Katherine's Dock London
|
|
|
|
Wow! Thanks vasanthz & Dick!! |
|
Back to top |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8797 Location: Welsh Wales
|
|
|
|
Or you could also search for CSIUTIL with author Expat for another solution |
|
Back to top |
|
|
|