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
