I bet the keylists are stored in the profile table, but not as profile variables at all. Instead they’re additional rows in the table, one row per keylist. The keylist name may be a key. So when a panel is displayed, it reads the keylist row, and now it has the key values.
I do think that the key variables are still extension variables in the row, though. Otherwise the variable names wouldn’t be repeated in the member. If that theory is correct, you could manipulate the values using standard ISPF table commands, even force the profile to save. You wouldn’t run into the extension variable limit because there’s not that many key variables in one keylist. I’d be careful though not to change the current row number (CRP) in the table. From: IBM Mainframe Discussion List <[email protected]> on behalf of Charles Mills <[email protected]> Reply-To: IBM Mainframe Discussion List <[email protected]> Date: Friday, September 26, 2025 at 3:04 PM To: "[email protected]" <[email protected]> Subject: Re: Programmatic API to ISPF PF keys? Thanks for all of the clues. I am going to hack on this and see what I can figure out. Charles On Fri, 26 Sep 2025 14:01:11 +0000, Schmitt, Michael <[email protected]<mailto:[email protected]>> wrote: I did have this part of the question wrong. The *KEYS table is the source of the keylist, but not where it is used at runtime. The keys in the keylist are stored in the application profile -- look for KEYnDEF, KEYnLAB, KEYnATR. But there's something odd. Normally you can only have one of each variable name, but there are multiple KEY1DEF, etc. An ISPF profile is actually an ISPF table, composed solely of extension variables. But ISPF is known to cheat. For example, it stores more than the limit of extension variables. So, either... 1. The keylist keys are data stored in one extension variable, i.e. it is a structure in a variable. 2. ISPF is cheating and the data is some entirely different binary form, not accessible by ISPF table commands. To see what it isw would need to open a profile as a table, iterate through the rows, and dump out all the extension variables. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected]<mailto:[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
