Charles,

It's an old trick in ISPF. The table is enqueued with the dsname of first
dataset in a concatenation. So if you read the table from one dd having
ISPPROF dataset as a second dataset, you can open it with no problem. The
output dataset can have any DD (use dataset parameter).

ITschak

ITschak Mugzach
*|** IronSphere Platform* *|* *Information Security Continuous Monitoring
for z/OS, x/Linux & IBM I **| z/VM coming soon  *


nbsp; *|*





On Sat, Oct 4, 2025 at 6:13 AM Charles Mills <[email protected]> wrote:

> @Michael, thanks, since my latest post I had gotten halfway there.
>
> It occurred to me after I posted that I could make an "MVS" copy of
> ISRPROF to another member and then display that member with 3.16, without
> any ISPF ENQ conflicts.
>
> I did that this morning and hacked out exactly what you say below. I can
> see my "eyecatcher" PF key string as the value for KEY4DEF in the row with
> KEYLISTN = 'ISRSPEC'.
>
> My next step was to write a proof of concept pretty much like your code
> below.
>
> Charles
>
> On Fri, 3 Oct 2025 16:04:36 +0000, Schmitt, Michael <
> [email protected]> wrote:
>
> >As previously mentioned, the source for the keylist is the KEYS table,
> but the values are copied and used from the application's profile.
> >
> >ISPF is using the first row for the profile variables, and then rows 2
> and up are one row per keylist. Each row is still just extension variables.
> Variable KEYLISTN is the keylist name, and the rest are the keylist data.
> >
> >So what you do is:
> >1. TBSKIP starting with row 2 until you find one where KEYLISTN is the
> desired keylist. You should capture the extension variable names.
> >2. When you find what you want, change the KEYnDEF, KEYnLAB, KEYnATR
> value.
> >3. TBPUT profile SAVE(extvars)
> >
> >
> >To prove this is correct, here's code that displays all the keylist
> variables for the VIEW keylist:
> >
> >address ISPEXEC
> >   "CONTROL ERRORS RETURN"
> >   keylist = 'ISRSPEC'
> >   table   = 'ISRPROF'
> >
> >   keylistn = ''
> >   "TBTOP  &TABLE"
> >   "TBSKIP &TABLE NUMBER(2) SAVENAME(EXTVARS)"
> >   do while rc = 0
> >      if keylistn = keylist then do
> >         call display_keylist
> >         leave
> >         end
> >      keylistn = ''
> >      "TBSKIP &TABLE SAVENAME(EXTVARS)"
> >      end
> >
> >   exit
> >
> >display_keylist:
> >   parse var extvars '(' extvars ')'
> >   do i = 1 to words(extvars)
> >      extvar = word(extvars, i)
> >      say extvar '=' value(extvar)
> >      end
> >   return
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
>

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to