IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Trying to delete archived PDS/PS


IBM Mainframe Forums -> CLIST & REXX
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
genesis786

Active User


Joined: 28 Sep 2005
Posts: 210
Location: St Katherine's Dock London

PostPosted: Mon Mar 12, 2012 3:40 pm
Reply with quote

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
View user's profile Send private message
vasanthz

Global Moderator


Joined: 28 Aug 2007
Posts: 1742
Location: Tirupur, India

PostPosted: Mon Mar 12, 2012 4:04 pm
Reply with quote

Have you tried something like

TSO HLIST LEVEL(USERID) MCDS
Back to top
View user's profile Send private message
dbzTHEdinosauer

Global Moderator


Joined: 20 Oct 2006
Posts: 6966
Location: porcelain throne

PostPosted: Mon Mar 12, 2012 4:12 pm
Reply with quote

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
View user's profile Send private message
genesis786

Active User


Joined: 28 Sep 2005
Posts: 210
Location: St Katherine's Dock London

PostPosted: Mon Mar 12, 2012 4:43 pm
Reply with quote

Wow! Thanks vasanthz & Dick!! icon_smile.gif
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8797
Location: Welsh Wales

PostPosted: Tue Mar 13, 2012 1:46 pm
Reply with quote

Or you could also search for CSIUTIL with author Expat for another solution
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> CLIST & REXX

 


Similar Topics
Topic Forum Replies
No new posts DELETE SPUFI DB2 1
No new posts DSNTIAUL driven delete IBM Tools 0
No new posts How to delete a user's alias from the... JCL & VSAM 11
No new posts Delete file row if blanks in the firs... DFSORT/ICETOOL 5
No new posts volume mass delete RMM JCL & VSAM 2
Search our Forums:

Back to Top