Thanks Vern for this and all your help!
That is what I am doing but it gets messy quickly and is not so self-documenting.
Here is what I have so far: - any suggestions would be appreciated!
PGM        parm(&text)                                   
dcl        &text          *char  len(500)                
dcl        &textLen       *dec   len(3)     value(500)   
dcl        &envr1         *char  len(1)     value('?')   
dcl        &envr4         *char  len(4)     value('????')
dcl        &patternlen    *dec   len(3)                  
dcl        &dblib         *char  len(10)                 
dcl        &start_pos     *dec   len(3)                  
dcl        &start_pos1    *dec   len(3)                  
dcl        &end_pos1      *dec   len(3)                  
dcl        &start_pos2    *dec   len(3)                  
dcl        &end_pos2      *dec   len(3)                  
                                                         
                                                         
rtvobjd    RESTART objtype(*FILE) rtnlib(&DBLIB)         
select                                                   
when       (&DBLIB = 'PRODLIB')  DO                      
  chgvar   &ENVR1 'P'                                    
  chgvar   &ENVR4 'PROD'                                 
  ENDDO                                                
when       (&DBLIB = 'TESTLIB')  DO                    
  chgvar   &ENVR1 'T'                                  
  chgvar   &ENVR4 'TEST'                               
  ENDDO                                                
when       (&DBLIB = 'DEMOLIB')  DO                    
  chgvar   &ENVR1 'D'                                  
  chgvar   &ENVR4 'DEMO'                               
  ENDDO                                                
endselect                                              
                                                       
chgvar &patternlen     6                               
SCNVAR     RESULT(&start_pos) STRING(&TEXT)   +        
             STRINGLEN(&textLen) PATTERN('&ENVR4') +   
             PATTERNLEN(&patternlen) TRANSLATE(*YES)   
 IF         (&start_pos > 1) do                        
     chgvar  &end_pos1   (&start_pos - 1)              
     chgvar  &start_pos2 (&start_pos + &patternlen)    
     chgvar  &end_pos2   (&textLen - &start_pos2)      
     chgvar &text                                    +
         (%sst(&text 1  &end_pos1  )                  +  
      ||  &ENVR4                                   +     
      ||  %sst(&text &start_pos2  &end_pos2))            
 ENDDO                                                   
                                                         
 ENDPGM                                                  
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Vern Hamberg
Sent: Monday, April 15, 2013 2:58 PM
To: Midrange Systems Technical Discussion
Subject: Re: want to create CL & CMD to substitute text in a parm
Joel
There is now a %scan builtin function - if you are at v7.1. You could still use QCLSCAN, too - and write your own. Once you find the location of &ENVR, you can use %SST to get the part before it and the part after it and put TEST or PROD in between.
That's the hard way. RPG is much better at this. So is a thing called REXX - easily called from CL.
I'm hoping IBM comes out with a %replace, too, for CL.
Vern
----- Original Message -----
For the purpose of describing the operating environment state (DEV, TEST, or PROD).
I want to call
SET_ENVR ('text or network path or email address goes here &ENVR4 and more text')
And have the CL named SET_ENVR change the text "&ENVR4" to TEST when the environment is a test environment (or PROD for production environment).
I am using the TAATOOL "SCNVAR" to locate the string of interest.
Is there a "replace" function in CL or TAATOOL or elsewhere that would help accomplish this?
End result:
SET_ENVR (jde_&ENVR_report@xxxxxxxxxxxxx) will result in the following if run from a test LPAR:
                       jde_TEST_report@xxxxxxxxxxxxx
If run on a production LPAR, the environment would resolve to:
jde_PROD_report@xxxxxxxxxxxxx
Thanks!
______________________________________________________________________
This outbound email has been scanned for all viruses by the MessageLabs Skyscan service.
For more information please visit 
http://www.symanteccloud.com
______________________________________________________________________
As an Amazon Associate we earn from qualifying purchases.