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

Reply via email to