View previous topic :: View next topic
|
Author |
Message |
princegaurav
New User
Joined: 08 Dec 2005 Posts: 9
|
|
|
|
Hi,
While developing a ISPF Dialog .. somtime the changes we make in Panel doesn't show when we display it using code. The code simply doesn't pick the updated Panel definition and still shows the old one.
Can anyone please explain, why does it happen ?
and how can we avoid it ? |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10888 Location: italy
|
|
|
|
Quote: |
Can anyone please explain, why does it happen ?
and how can we avoid it ? |
it happens because ISPF ( for performance ) keeps an in storage FIFO stack of the panels/skels/messages/tables used
testing new <applications> should be done thru ISPF option 7 ( dialog test )
then ISPF will always read <things> from disk
cannot be avoided on production,
unless You train the end users on how to use ISPF option 7
FASTER to have them LOGOFF/LOGON |
|
Back to top |
|
|
Josh Keller
New User
Joined: 08 Oct 2007 Posts: 36 Location: Columbia, SC
|
|
|
|
I've wondered why option 7 shows the "live" data. Is there a way to purge the cached panel without logging off? ie dropping and reallocating the ISPPLIB? |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10888 Location: italy
|
|
|
|
Quote: |
I've wondered why option 7 shows the "live" data. Is there a way to purge the cached panel without logging off? ie dropping and reallocating the ISPPLIB? |
because the option description tells ... TEST
pretty dumb to have to logoff/logon <reallocate> when testing
why would You want to purge the cache live.
usually all the changes are rolled on when <nobody> is logged on
a workaround would be to run every new application thru libdeffed panels,msgs,skels
a bit of overshooting
once upon a time curiosity killed the cat and I did run a test displaying random panel sequences and found that the panel cache would hold about 15 panels
things might be different now |
|
Back to top |
|
|
don.leahy
Active Member
Joined: 06 Jul 2010 Posts: 765 Location: Whitby, ON, Canada
|
|
|
|
Another way to ensure that you see a fresh copy of each panel is to start your ISPF session with the TEST parameter:
ISPSTART TEST |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10888 Location: italy
|
|
|
|
completely forgot about that ! |
|
Back to top |
|
|
Josh Keller
New User
Joined: 08 Oct 2007 Posts: 36 Location: Columbia, SC
|
|
|
|
[quote="enrico-sorichetti"]
Quote: |
because the option description tells ... TEST
pretty dumb to have to logoff/logon <reallocate> when testing
why would You want to purge the cache live.
|
Because I am testing. I wouldn't do this in production. Sometimes it's nice to display my table panel with data if I update the model section for example. In addition, I usually have a plethora of screens up, and it's a pain to back all the way out just to update one panel. Unless I missed something, option 7 only displays the panel, and allows me to key data, but does not display table data.
Don, I'll try the test option you mentioned.
Thanks, |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10888 Location: italy
|
|
|
|
Quote: |
and it's a pain to back all the way out just to update one panel. |
why would You need that? just jump to a different split, make the modifications
and at the first screen I/O in the <TEST> split the modified panel will show up
I have done quite a bit of ISPF development
IMO adding the test invocation option to just refresh the panels is not enough for true testing
I would anyway use option 7 for all the other testing goodies
breakpoints and variable pool display
Code: |
Menu Utilities Compilers Options Status Help
─ ┌───────────────────────────── Dialog Test ──────────────────────────────┐ ─
│ Menu Utilities View Help │
O │ ───────────────────────────────────────────────────────────────────── │
│ Primary Option Panel │
0 │ Option ===> │
1 │ │
2 │ 1 Functions Invoke dialog functions/selection panel │
3 │ 2 Panels Display panels │
4 │ 3 Variables Display/set variable information │
5 │ 4 Tables Display/modify table information │
6 │ 5 Log Browse ISPF log │
7 │ 6 Dialog Services Invoke dialog services │
8 │ 7 Traces Specify trace definitions │
9 │ 8 Breakpoints Specify breakpoint definitions │
1 │ T Tutorial Display information about Dialog Test │
1 │ X Exit Terminate dialog testing │
1 │ │
1 │ │
1 └────────────────────────────────────────────────────────────────────────┘
15 z/OS User z/OS user applications (Alternate)
16 z/OS Other z/OS Other (Condensed)
Enter X to Terminate using log/list defaults
3279 06/018 |
|
|
Back to top |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2594 Location: Silicon Valley
|
|
|
|
Quote: |
Unless I missed something, option 7 only displays the panel, and allows me to key data, but does not display table data. |
Using option 7.1, you can display a menu panel, invoke a command, or invoke a program. Use the same method that you normally use to launch your application. Navigate to your table display and then issue DTEST 4 command to examine your table.
DTEST 4 is the same dialog as ISPF option 7.4. Use that panel to view table rows. _Or_ you can use the action bar -> Utilities -> 16 to display table information (this is a more recent table utility). |
|
Back to top |
|
|
Josh Keller
New User
Joined: 08 Oct 2007 Posts: 36 Location: Columbia, SC
|
|
|
|
Quote: |
Using option 7.1, you can display a menu panel, invoke a command, or invoke a program.
|
So are you saying if I use 7.1 and issue a TBDISPL command along with the panel name I just modified (and an open table name), I will see the new modification? Essentially the same as 7.2 with table data?
I know this is sounding picky, but making an model section change and not being able to immediately test it (without logging off) is a pet peeve of mine. About 30% of my duties include ISPF development, so I'm always looking for ways to save man hours seconds at a time. I wasn't aware of the ISPSTART TEST parm, so I'll try that tomorrow.
Thanks all. Sorry to hijack this thread. |
|
Back to top |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2594 Location: Silicon Valley
|
|
|
|
Quote: |
Use the same method that you normally use to launch your application. |
and
Quote: |
issue a TBDISPL command along with the panel name I just modified (and an open table name), |
What happened when you tried it?
No, it should not work. The TBDISPL is not a command or program, but rather an ISPF service call and it has to be called from within an exec or compiled program. You have to issue the exec that invokes TBDISPL as you normally would outside of option 7.
For example, if you normally launch your application from the ISPF primary command line:
then in ISPF option 7.1, you put "%myexec" in the CMD field
Code: |
Menu Save Utilities Help
----------------------------------------------------------------------------
Invoke Dialog Function/Selection Panel
Command ===>
More: +
Invoke selection panel:
PANEL . .
OPT . . .
Invoke command:
CMD . . . %myexec
LANG . . . (APL, CREX, or blank)
MODE . . . (LINE, FSCR, or blank)
Invoke program:
PGM . . .
PARM . . .
MODE . . . (LINE, FSCR, or blank) |
Think of the ISPF 7.1 panel as input to the SELECT service of ISPF. |
|
Back to top |
|
|
Josh Keller
New User
Joined: 08 Oct 2007 Posts: 36 Location: Columbia, SC
|
|
|
|
I get what you're saying Pedro. I wasn't logged in when I reply and couldn't remember what 7.1 looked like. I was confusing it for option 7.6.
Update, I tried the ISPSTART TEST option and that does exactly what I wanted. Thanks all! |
|
Back to top |
|
|
Stefan
Active User
Joined: 12 Jan 2006 Posts: 110 Location: Germany
|
|
|
|
Josh Keller wrote: |
Is there a way to purge the cached panel without logging off? |
Whenever I test a complex routine and make a lot of changes to panels I use the following code fragment to flush the cache:
Code: |
refresh_cache:
do run_i = 1 by 1 to 12
"ISPEXEC CONTROL NONDISPL END"
"ISPEXEC DISPLAY PANEL(ISR003" !! RIGHT(run_i,2,'0') !! ")"
end
return |
This works fine because ISPF caches the last 10 panels only. |
|
Back to top |
|
|
|