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

Find and Replace the Dataset Names


IBM Mainframe Forums -> CLIST & REXX
Post new topic   Reply to topic
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
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
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: 2481
Location: Netherlands, Amstelveen

PostPosted: Tue Feb 02, 2010 3:33 pm
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 View Bookmarks
All times are GMT + 6 Hours
Forum Index -> CLIST & REXX

 


Similar Topics
Topic Forum Replies
No new posts Replace each space in cobol string wi... COBOL Programming 3
No new posts FINDREP - Only first record from give... DFSORT/ICETOOL 3
No new posts Replace Multiple Field values to Othe... DFSORT/ICETOOL 12
No new posts To find whether record count are true... DFSORT/ICETOOL 6
No new posts Map Vols and Problem Dataset All Other Mainframe Topics 2
Search our Forums:

Back to Top