IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

can an ISPF appl save user changes in panels even in timeout


IBM Mainframe Forums -> TSO/ISPF
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Lynne

New User


Joined: 15 Jan 2015
Posts: 98
Location: USA

PostPosted: Mon Jun 10, 2024 7:48 pm
Reply with quote

If a user makes a change to a panel - say putting in a different dataset for a function- can that application save the profile for only that profile so that those changes aren't lost even with a timeout?

I tried adding a "save" function, but the application profile member is in use when you are in the application.
Back to top
View user's profile Send private message
Willy Jensen

Active Member


Joined: 01 Sep 2015
Posts: 720
Location: Denmark

PostPosted: Mon Jun 10, 2024 9:31 pm
Reply with quote

Well, you can do a VPUT (names) PROFILE in the panel PROC section. But it does require that the user presses ENTER.
Back to top
View user's profile Send private message
Lynne

New User


Joined: 15 Jan 2015
Posts: 98
Location: USA

PostPosted: Tue Jun 11, 2024 12:42 am
Reply with quote

Willy Jensen wrote:
Well, you can do a VPUT (names) PROFILE in the panel PROC section. But it does require that the user presses ENTER.


the thing is, I do save what the user enters into a panel as profile variables for that function at the panel proc section - before it even process the function. My thinking is that is if they work with the same number of datasets or variables, then they don't want to have to enter them over and over.

I have this code just before entering the rexx function in the proc section - so this VPUT should save whatever the user put into the panel:

Code:
 
    &yA1@ = 'yA1@imem yA1@opds yA1@pf yA1@tmem yA1@zmem ya1@ab4 +
              yA1@zmi yA1@emi yA1@t2d ya1@tmax yA1@env yA1@ulib +
              yA1@job yA1@jobc yA1@edit yA1@ojob'
    VPUT (yA1@ &yA1@) PROFILE


but if the person times out - and the timeouts are very aggressive where I work, then those values in the panel are lost.
Back to top
View user's profile Send private message
Pedro

Global Moderator


Joined: 01 Sep 2006
Posts: 2569
Location: Silicon Valley

PostPosted: Tue Jun 11, 2024 6:39 am
Reply with quote

If it is not too big, show us the entire panel definition.
Back to top
View user's profile Send private message
Lynne

New User


Joined: 15 Jan 2015
Posts: 98
Location: USA

PostPosted: Tue Jun 11, 2024 6:44 am
Reply with quote

I wrote them all with the same "philosophy" - saving the panel variables before going to the function - I will find the shortest panel and post it here.
Back to top
View user's profile Send private message
hankoerlemans

New User


Joined: 25 Jan 2018
Posts: 60
Location: Australia

PostPosted: Tue Jun 11, 2024 7:37 am
Reply with quote

Well this kind of thing does work

Code:

ADDRESS ISPEXEC "VGET (ZAPPLID)"               
TAB = ZAPPLID'PROF'                             
DO UNTIL RC > 0                                 
 ADDRESS ISPEXEC "DISPLAY PANEL(VPUTIT)"       
 ADDRESS ISPEXEC "TBSAVE "TAB" LIBRARY(ISPPROF)"
END                                             


with the aforementioned caveat about pressing enter.
Back to top
View user's profile Send private message
hankoerlemans

New User


Joined: 25 Jan 2018
Posts: 60
Location: Australia

PostPosted: Tue Jun 11, 2024 9:49 am
Reply with quote

Previous code has a bug :-)
Code:

ADDRESS ISPEXEC "VGET (ZAPPLID)"               
TAB = ZAPPLID'PROF'                             
DO UNTIL LRC > 0                                 
 ADDRESS ISPEXEC "DISPLAY PANEL(VPUTIT)"   
 LRC = RC   
 ADDRESS ISPEXEC "TBSAVE "TAB" LIBRARY(ISPPROF)"
END     
Back to top
View user's profile Send private message
Willy Jensen

Active Member


Joined: 01 Sep 2015
Posts: 720
Location: Denmark

PostPosted: Tue Jun 11, 2024 1:58 pm
Reply with quote

As I understand your problem, the user enters some data in the screen and then do not press any function keys before the timeout kicks in?
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10877
Location: italy

PostPosted: Tue Jun 11, 2024 3:01 pm
Reply with quote

the mainframe is not a pc

no data transfer happens until the user hits the enter key

as far as zOS is concerned the time spent filling a screen is considered idle time

IMO the bits/bytes on the screen are not DATA until zOS has taken them in charge
Back to top
View user's profile Send private message
Lynne

New User


Joined: 15 Jan 2015
Posts: 98
Location: USA

PostPosted: Tue Jun 11, 2024 11:58 pm
Reply with quote

let me say... it isn't just my application. Here is something I tried today (and I hope some of you try it and tell me what results you get):

I brought up ISPF. I have the ISPF ZSTART variable set to automatically bring up multiple screens.

I go to the ISPF, bring up edit. put in one of my datasets. hit enter. it displays the members. I get outof the member display. leave the edit screen as is (do not exit EDIT).

then I go to the SDSF screen. bring up FILTERS - add a filter. save it. do st. I see the new jobs with the added filter displayed. I leave SDSF up on that screen.

then I do something else un-tso work, until TSO times out.

When I come back - what I entered into the edit panel is gone. My new SDSF filter is gone.

In order to save anything I input into any of the standard type applications - edit/sdsf/endevor - I have to do = xall, then bring ISPF back up again. that saves it.

I will try exiting the individual applications next, and see if that saves values across timeout.

plz try this - and let me know if it is the same for you.
Back to top
View user's profile Send private message
Willy Jensen

Active Member


Joined: 01 Sep 2015
Posts: 720
Location: Denmark

PostPosted: Wed Jun 12, 2024 2:13 am
Reply with quote

Yes you have to exit SDSF in order to update the settings. Other applications may save the profile info during the course of the application. It depends on how the application is written.
Back to top
View user's profile Send private message
Pedro

Global Moderator


Joined: 01 Sep 2006
Posts: 2569
Location: Silicon Valley

PostPosted: Wed Jun 12, 2024 4:39 am
Reply with quote

re: "I tried adding a "save" function, but the application profile member is in use when you are in the application"

I do not think typing and timeout will save anything. But typing, saving, and then timeout should save something. It is not clear what you tried, but 'member in use' implies a non-ISPF solution. I think VPUT to PROFILE should work.

a tangent: I really liked the NRETRIEV function. Instead of retrieving commands that were issued, it lets you retrieve names from a history of used names. Though, the user still has to press Enter to add it to the history.
Back to top
View user's profile Send private message
hankoerlemans

New User


Joined: 25 Jan 2018
Posts: 60
Location: Australia

PostPosted: Wed Jun 12, 2024 10:38 am
Reply with quote

hi folks,

the point of my update ( I never use enough words) is that VPUT in a panel does not cause any I/O. Irrespective of whether the application is home grown or SDSF. VPUT updates the profile variables in storage. The disk table that "backs up" the variables does not get written to (updated) until the application closes. In some cases, e.g. ISRPROF, profile tables do not get written until ISPF shuts down.
So if you want some sort of recovery from time outs implement a TBSAVE operation as per example. This has to be done outside of panel code.
Back to top
View user's profile Send private message
Lynne

New User


Joined: 15 Jan 2015
Posts: 98
Location: USA

PostPosted: Wed Jun 12, 2024 8:37 pm
Reply with quote

hankoerlemans wrote:
hi folks,

the point of my update ( I never use enough words) is that VPUT in a panel does not cause any I/O. Irrespective of whether the application is home grown or SDSF. VPUT updates the profile variables in storage. The disk table that "backs up" the variables does not get written to (updated) until the application closes. In some cases, e.g. ISRPROF, profile tables do not get written until ISPF shuts down.
So if you want some sort of recovery from time outs implement a TBSAVE operation as per example. This has to be done outside of panel code.


thank you so much. This makes sense of what I was seeing.

I think many people just use a couple of screens and jump from one app to another in those few screens.. so when they end one application, their variables get saved.

but I created a rexx exec that allows the user to set up multiple screens with whatever they want, then from that point on, whenever they type in ISPF from TSO, they go to the multiple screens they set up. So, much of the time, the application on each screen is not exited out of until the user types =XALL. They just go back and forth between screens depending on what they are doing.

but if they time out.. they have not exited the application and the variables are not saved.

so, this makes sense. I will see if this works. Thanks again.
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8796
Location: Welsh Wales

PostPosted: Wed Jun 26, 2024 2:11 pm
Reply with quote

A bit late to the party, but ............

In the past where users only have a limited number of options I have used a table for them to choose a dataset from. That way the options are always there and easy to choose.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> TSO/ISPF

 


Similar Topics
Topic Forum Replies
No new posts Save SYSLOG in a MASS complex All Other Mainframe Topics 3
No new posts Unload and Load ISPF Table TSO/ISPF 4
No new posts ISPF Table to add a new column TSO/ISPF 1
No new posts COBOL 6.4 - User Defined Function nee... COBOL Programming 6
No new posts How to save SYSLOG as text data via P... All Other Mainframe Topics 4
Search our Forums:

Back to Top