Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Profile Log in to check your private messages Log in
 
Trying to delete archived PDS/PS

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> CLIST & REXX
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    Post subject: Trying to delete archived PDS/PS
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: 1532
Location: Chennai

PostPosted: Mon Mar 12, 2012 4:04 pm    Post subject:
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: 6970
Location: porcelain throne

PostPosted: Mon Mar 12, 2012 4:12 pm    Post subject:
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    Post subject:
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: 8620
Location: Back in jolly old England

PostPosted: Tue Mar 13, 2012 1:46 pm    Post subject:
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    IBMMAINFRAMES.com Support Forums -> CLIST & REXX All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts Skip file from delete pema_yozer All Other Mainframe Topics 3 Tue Aug 29, 2017 3:19 pm
No new posts Delete IMS remote transaction when MO... Sam Singh IMS DB/DC 0 Wed Aug 23, 2017 9:12 pm
No new posts JCL to delete component in a package sundaram.naveen Compuware & Other Tools 14 Tue Nov 29, 2016 6:21 pm
No new posts How to delete second instance from Fl... Gunapala CN DFSORT/ICETOOL 6 Tue Oct 18, 2016 11:42 pm
No new posts Delete record or Reset RC code using ... mpawan Compuware & Other Tools 4 Tue Jul 26, 2016 3:52 pm

Facebook
Back to Top
 
Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us