View previous topic :: View next topic
|
Author |
Message |
brahmanandarm
New User
Joined: 15 Jun 2009 Posts: 28 Location: bangalore
|
|
|
|
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 |
|
|
Escapa
Senior Member
Joined: 16 Feb 2007 Posts: 1399 Location: IL, USA
|
|
|
|
Check if this works for you..
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 |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
I used IPOUPDTE for that kind of things. |
|
Back to top |
|
|
|