Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

Find and Replace the Dataset Names

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> CLIST & REXX
View previous topic :: :: View next topic  
Author Message
brahmanandarm

New User


Joined: 15 Jun 2009
Posts: 28
Location: bangalore

PostPosted: Tue Feb 02, 2010 3:25 pm    Post subject: Find and Replace the Dataset Names
Reply with quote

Hi All,

Could some one explain me how to find a dataset and replace with the required dataset name.

I have the following requirements
I have a list of Dataset names
Example : the data set abc.mte.test.volume has to replace with abc.met.test.volume.month

Using REX I need to scan the JCLS for the abc.mte.test.volume dataset and replace with abc.met.test.volume.month.
Back to top
View user's profile Send private message

Escapa

Senior Member


Joined: 16 Feb 2007
Posts: 1399
Location: IL, USA

PostPosted: Tue Feb 02, 2010 3:31 pm    Post subject:
Reply with quote

Check if this works for you.. icon_smile.gif
Code:

/**************************REXX*****************************/
/*---------------------------------------------------------*/
/* REXX PROGRAM - REPLACES A STRING WITH ANOTHER STRING    */
/* IN ALL MEMBERS OF THE PDS WHICH IS GIVEN AS A INPUT     */
/*  SRCPDS   = NAME OF THE SOURCE PDS                      */
/*  SRCSTRNG = THE ORIGINAL STRING TO BE REPLACED          */
/*  TRGSTRNG = THE TARGET STRING WHICH WILL REPLACE THE    */
/*  ORIGINAL STRING.                                       */
/*---------------------------------------------------------*/
                                                             
SAY 'ENTER THE PDS NAME : '                                   
PULL SRCPDS                                                   
                                                             
SRCPDS = STRIP(SRCPDS)                                       
TRGTPDS = SRCPDS                                             
                                                             
SAY 'ENTER THE ORIGINAL STRING: '                             
PULL SRCSTRNG                                                 
SAY 'ENTER THE REPLACEMENT STRING: '                         
PULL TRGSTRNG                                               
                                                             
IF SYSDSN("'"SRCPDS"'") /= "OK" THEN                         
DO                                                           
  SAY "UNABLE TO FIND DATASET '"SRCPDS"'. PLEASE VERIFY."   
  EXIT                                                       
END                                                         
                                                             
IF SYSDSN("'"TRGTPDS"'") /= "OK" THEN                       
DO                                                           
  SAY "UNABLE TO FIND DATASET '"TRGTPDS"'. PLEASE VERIFY."   
  EXIT                                                       
END                                                         
                                                             
X = OUTTRAP("MEMLST.")                                       
"LISTDS '"SRCPDS"' MEMBERS"                                 
X = OUTTRAP("OFF")                                           
SHOWLIST = 0                                   
DO I = 1 TO MEMLST.0                           
  IF MEMLST.I = "--MEMBERS--" THEN             
  DO                                           
    I = I + 1                                 
    LEAVE                                     
  END                                         
END                                           
                                               
CHANGED = 0                                   
SKIPED = 0                                     
DO INDX = I TO MEMLST.0                       
  MEMBER = STRIP(MEMLST.INDX)                 
  INPUTDAT = SRCPDS"("MEMBER")"               
  INP. = ""                                   
  OUT. = ""                                   
                                               
  "ALLOC DA('"INPUTDAT"') F(INPF) SHR REU"     
  "EXECIO * DISKR INPF (STEM INP. FINIS"       
  "FREE F(INPF)"                                       
                                                       
  STRFLAG = 0                                         
  DO I = 1 TO INP.0                                   
                                                       
    SRCPOS = 1                                         
    DO WHILE SRCPOS > 0                               
      SRCPOS = POS(SRCSTRNG,INP.I,SRCPOS)             
      IF SRCPOS > 0 THEN                               
      DO                                               
        INP.I = DELSTR(INP.I, SRCPOS, LENGTH(SRCSTRNG))
        INP.I = INSERT(TRGSTRNG, INP.I, SRCPOS-1)     
        STRFLAG = 1                                   
        SRCPOS = SRCPOS + LENGTH(TRGSTRNG)             
      END                                             
    END                                               
  END                                                 
                                                       
  IF STRFLAG = 1 THEN                                 
  DO                                             
    OUTPUTDAT = TRGTPDS"("MEMBER")"               
    "ALLOC DA('"OUTPUTDAT"') F(OUTF) SHR REU"     
    "EXECIO * DISKW OUTF (STEM INP. FINIS"       
    "FREE F(OUTF)"                               
    SAY "CHANGED " INPUTDAT                       
    CHANGED = CHANGED + 1                         
  END                                             
  ELSE                                           
  DO                                             
    SKIPED = SKIPED + 1                           
  END                                             
END                                               
                                                 
SAY ' TOTAL NO. OF MEMBERS CHANGED : ' CHANGED   
SAY ' TOTAL NO. OF MEMBERS SKIPED : ' SKIPED     
Back to top
View user's profile Send private message
PeterHolland

Global Moderator


Joined: 27 Oct 2009
Posts: 2433
Location: Netherlands, Amstelveen

PostPosted: Tue Feb 02, 2010 3:33 pm    Post subject:
Reply with quote

I used IPOUPDTE for that kind of things.
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 Fileaid 2 commands instream work. In ... descann Compuware & Other Tools 2 Tue May 16, 2017 3:31 pm
No new posts Fileaid Update Replace with null string descann Compuware & Other Tools 4 Mon May 15, 2017 3:00 pm
No new posts Replace values in the input data Vikas Maharnawar DFSORT/ICETOOL 10 Thu May 11, 2017 2:18 pm
No new posts find RACF group for access to spooled... jzhardy JCL & VSAM 1 Mon May 08, 2017 11:46 am
No new posts To find out size allocated to a seque... ashek15 JCL & VSAM 15 Thu Apr 27, 2017 9:42 am


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us