Uh, I don't think so.
You're thinking CLIST not REXX.
Try adding the statement: &PDQR="A"
Ahead of the first ISREDIT statement that uses it and you will get the error: 
     9 *-* &PDQR="A"                                   
     9 +++ &PDQR="A"                                   
IRX0035I Error running XMAC, line 9: Invalid expression
***                                                    

If you then change the &PDQR="A" to PDQR="A" and try it again:

     9 *-* PDQR="A"                                                
       >L>   "A"                                                   
    10 *-* findstr = "DISP=SHR,DSN=MSYS.UCMD.REMOTE&PDQR.("        
       >L>   "DISP=SHR,DSN=MSYS.UCMD.REMOTE&PDQR.("                
    11 *-* "ISREDIT F ALL C'"findstr"'                             
  "                                                                
       >L>   "ISREDIT F ALL C'"                                    
       >V>   "DISP=SHR,DSN=MSYS.UCMD.REMOTE&PDQR.("                
       >O>   "ISREDIT F ALL C'DISP=SHR,DSN=MSYS.UCMD.REMOTE&PDQR.("
       >L>   "'                                           "        
       >O>   "ISREDIT F ALL C'DISP=SHR,DSN=MSYS.UCMD.REMOTE&PDQR.('
                               "                                   
       +++ RC(4) +++                                               
    12 *-* "isredit f all x'"c2x("(")"' "                          
       >L>   "isredit f all x'"                                    
       >L>   "("                                                   
       >F>   "4D"                                                  
       >O>   "isredit f all x'4D"                                  
       >L>   "' "                                                  
       >O>   "isredit f all x'4D' "                                
    13 *-* TRACE N                                                 
***                                                                

You will see in the trace that &PDQR was not substituted.
If this was a CLIST, I would agree with you, but this is REXX and REXX doesn't 
use "&" in it's variable names.


Charles (Chuck) Hardee
Senior Systems Engineer
Database Administration
Information Technology Services
Thermo Fisher Scientific
300 Industry Drive
Pittsburgh, PA 15275
Direct: 724-517-2633
FAX: 412-490-9230
chuck.har...@thermofisher.com


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Thomas Berg
Sent: Wednesday, July 18, 2012 1:27 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: SV: REXX ISPF edit FIND failing

The problem is that ISPF/ISREDIT evaluates/substitutes any ISPF variable, which 
in this case is "&PDQR".
So:
ISREDIT F ALL 'DISP=SHR,DSN=MSYS.UCMD.REMOTE'                        " 
 is the same as
"ISREDIT F ALL 'DISP=SHR,DSN=MSYS.UCMD.REMOTE&PDQR'                  "
 and is the same as 
"ISREDIT F ALL 'DISP=SHR,DSN=MSYS.UCMD.REMOTE&PDQR.'                 "

In the latter two cases (apparently) "&PDQR" resolves into "" (empty) and 
"&PDQR." also. (The dot "." is used as an end-of-variable-name marker, IIRC.)

In e g this:
"ISREDIT F ALL 'DISP=SHR,DSN=MSYS.UCMD.REMOTE&PDQR.('                 "
- resolves to: "ISREDIT F ALL 'DISP=SHR,DSN=MSYS.UCMD.REMOTE('                 "
wich is no to be found in the dataset.
 
Etc.



Regards,
Thomas Berg
_______________________________________________________
Thomas Berg   Specialist   AM/SM&S   SWEDBANK AB (publ)



> -----Ursprungligt meddelande-----
> Från: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU]
> För John Mattson
> Skickat: den 18 juli 2012 18:48
> Till: IBM-MAIN@LISTSERV.UA.EDU
> Ämne: REXX ISPF edit FIND failing
> 
> I have a little dataset which contains
> //REMOTE   DD  DISP=SHR,DSN=MSYS.UCMD.REMOTE&PDQR.(&SYSTEM)
> //REMOTE   DD  DISP=SHR,DSN=MSYS.UCMD.REMOTE&PDQR.(SYSTEM)
> //REMOTE   DD  DISP=SHR,DSN=MSYS.UCMD.REMOTE&PDQR(SYSTEM)
> //SYSIN    DD  DISP=SHR,DSN=&PDQ.ALC.UNVLIB(&UCMIN)
> X/MYSCRIPT DD  DISP=SHR,DSN=&PDQ.ALC.UNVLIB(&MY)
> 
> I have a little REXX which I want to "FIND" these strings
> /* REXX */
> TRACE I
> Address ISPEXEC
> "ISREDIT MACRO (MEM) NOPROCESS"
> "CONTROL ERRORS RETURN"
> "ISREDIT F ALL 'DISP=SHR,DSN=MSYS.UCMD.REMOTE'                        "
> "ISREDIT F ALL 'DISP=SHR,DSN=MSYS.UCMD.REMOTE&PDQR'                   "
> "ISREDIT F ALL 'DISP=SHR,DSN=MSYS.UCMD.REMOTE&PDQR.'                  "
> "ISREDIT F ALL 'DISP=SHR,DSN=MSYS.UCMD.REMOTE&PDQR.('                 "
> "ISREDIT F ALL 'DISP=SHR,DSN=MSYS.UCMD.REMOTE&PDQR.(&'                "
> "ISREDIT F ALL 'DISP=SHR,DSN=MSYS.UCMD.REMOTE&PDQR.(&SYSTEM)'         "
> "ISREDIT F ALL 'DISP=SHR,DSN=&PDQ.ALC.UNVLIB(&UCMIN)'                 "
> "ISREDIT F ALL 'DISP=SHR,DSN=&PDQ.ALC.UNVLIB(&MY)'                    "
> EXIT
> 
>         The First Three FIND's work fine.  Starting from the fourth
> find, they all get RC=4, not found.  Even tho I can clearly see that the
> strings exist in the dataset.  What in the whirled is going on here?? Is
> there something "special" about two &'s in a string?  I have tried
> removing the second & from both the find and my dataset and the find
> still fails.  I am at wits end here.
>         I have also tried "extracting" the actual finds like: F ALL
> 'DISP=SHR,DSN=&PDQ.ALC.UNVLIB(&MY)'and executing them in TSO, and they
> all work. What is special here.  FYI, the final " is in col 71
> 
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions, send
> email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to