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

Reply via email to