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

Adding QMF and SPUFI to the ISPF menu


IBM Mainframe Forums -> DB2
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
M Lee Klein

New User


Joined: 08 Feb 2022
Posts: 39
Location: USA

PostPosted: Fri Nov 17, 2023 7:39 pm
Reply with quote

My coworker is out and I'm tasked with adding QMF and SPUFI to a user's ISPF menu. The userid profile looks identical in Top Secret to a user who already has the menu items.

Do I need to grant access to special SPUFI datasets or what? I don't see anything in my coworkers jcl that seems to indicate what to do.
Back to top
View user's profile Send private message
Pedro

Global Moderator


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

PostPosted: Sat Nov 18, 2023 12:57 am
Reply with quote

I do not know anything about Top Secret profiles...

The sites that I am familiar with have an exec that executes at logon time, and that exec concatenates datasets specific to that user's needs.

Check to see if the logon proc automatically executes an exec.
Back to top
View user's profile Send private message
M Lee Klein

New User


Joined: 08 Feb 2022
Posts: 39
Location: USA

PostPosted: Sat Nov 18, 2023 3:47 am
Reply with quote

There is a logon script but instead of executing the user gets this:
Enter dataset name
Back to top
View user's profile Send private message
Pedro

Global Moderator


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

PostPosted: Sat Nov 18, 2023 6:01 am
Reply with quote

What is the name of the logon script?

I suspect the system logon script executes a private logon script. The one user that works probably has such an exec and the other does not.

Can you show us the first few lines of the logon proc and also whatever logon script that it executes?
Back to top
View user's profile Send private message
Pedro

Global Moderator


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

PostPosted: Sat Nov 18, 2023 11:09 am
Reply with quote

re: grant access to special SPUFI datasets or what?

Basically, the user needs to concatenate the DB2 and QMF product data sets to various DD name allocations.

Issue ISRDDN command on both the working userid and the non-working userid and compare to see what is missing.
Back to top
View user's profile Send private message
M Lee Klein

New User


Joined: 08 Feb 2022
Posts: 39
Location: USA

PostPosted: Sat Nov 25, 2023 7:41 pm
Reply with quote

I copied the ISPPLIB and members from the working userid but still no QMF and SPUFI menu item but got past the initial dataset error.

/* REXX
Call Trace 'off'
Call Msg 'off'

Userid = Userid()

ADDRESS TPO
"PROFILE INTERCOM PAUSE MSGID WTPMSG PREFIX("USERID")"
"EXECUTIL SEARCHDD(YES) EXECDD(NOCLOSE)"

If SysDsn("'TR."Userid".SYSEXEC'") = "OK"
Then UserSYSEXEC = "''TR."Userid".SYSEXEC'',"
Else UserSYSEXEC = ''

EX "'TP.COOL.PROD.SYSEXEC(DSNADD)'" ,
ADDRESS TPO
"PROFILE INTERCOM PAUSE MSGID WTPMSG PREFIX("USERID")"
"EXECUTIL SEARCHDD(YES) EXECDD(NOCLOSE)"

If SysDsn("'TR."Userid".SYSEXEC'") = "OK"
Then UserSYSEXEC = "''TR."Userid".SYSEXEC'',"
Else UserSYSEXEC = ''

EX "'TP.COOL.PROD.SYSEXEC(DSNADD)'" ,
"'SYSEXEC",
UserSYSExec,
"''TP.COOL.PROD.SYSEXEC''",
"''TP.QMF.BBC2.SDSFEXEC''",
"''TP.DB2.DBA.SYSEXEC''",
"'"

If SysDsn("'TR."Userid".CLIST'") = "OK"
Then UserCLIST = "'TR."Userid".CLIST',"
"'SYSEXEC",
UserSYSExec,
"''TP.COOL.PROD.SYSEXEC''",
"''TP.QMF.BBC2.SDSFEXEC''",
"''TP.DB2.DBA.SYSEXEC''",
"'"

If SysDsn("'TR."Userid".CLIST'") = "OK"
Then UserCLIST = "'TR."Userid".CLIST',"
Else UserCLIST = ''

"DSNADD SYSPROC "USERCLIST,
"'TP.AGEN.T85.PROD.TEHBCLS0.USER.BBC2'",
"'TP.AGEN.T85.PROD.TEHBCLS0'",
"'TP.PEA860.PROD.CLIST.USER'",
"'TP.PEA860.PROD.CLIST'",
"'TP.DB2.BBC2.DSNCLIST'",
"'TP.QMF.BBC2.SDSFCLTE'"
Else UserCLIST = ''

"DSNADD SYSPROC "USERCLIST,
"'TP.AGEN.T85.PROD.TEHBCLS0.USER.BBC2'",
"'TP.AGEN.T85.PROD.TEHBCLS0'",
"'TP.PEA860.PROD.CLIST.USER'",
"'TP.PEA860.PROD.CLIST'",
"'TP.DB2.BBC2.DSNCLIST'",
"'TP.QMF.BBC2.SDSFCLTE'"

If SysDsn("'TR."Userid".ISPLLIB'") = "OK"
Then UserISPLLIB = "'TR."Userid".ISPLLIB'"
Else UserISPLLIB = ''

"DSNADD ISPLLIB "UserISPLLIB,
"'TP.AGEN.T85.PROD.TEHBPLD0.USER'",
"'TP.AGEN.T85.PROD.TEHBPLD1.USER'",
"'TP.AGEN.T85.PROD.TEHBPLD0'",

If SysDsn("'TR."Userid".ISPLLIB'") = "OK"
Then UserISPLLIB = "'TR."Userid".ISPLLIB'"
Else UserISPLLIB = ''

"DSNADD ISPLLIB "UserISPLLIB,
"'TP.AGEN.T85.PROD.TEHBPLD0.USER'",
"'TP.AGEN.T85.PROD.TEHBPLD1.USER'",
"'TP.AGEN.T85.PROD.TEHBPLD0'",
"'TP.AGEN.T85.PROD.TEHBPLD1'",
"'TP.PEA860.PROD.LOAD'",
"'TP.DB2.BBC2.DSNEXIT'",
"'TP.DB2.BBC2.DSNLOAD'",
"'TP.DB2.BBC2.RUNLIB.LOAD'",
"'TP.QMF.BBC2.SDSFLOAD'"


If SysDsn("'TR."Userid".ISPMLIB'") = "OK"
"'TP.AGEN.T85.PROD.TEHBPLD1'",
"'TP.PEA860.PROD.LOAD'",
"'TP.DB2.BBC2.DSNEXIT'",
"'TP.DB2.BBC2.DSNLOAD'",
"'TP.DB2.BBC2.RUNLIB.LOAD'",
"'TP.QMF.BBC2.SDSFLOAD'"


If SysDsn("'TR."Userid".ISPMLIB'") = "OK"
Then UserISPMLIB = "'TR."Userid".ISPMLIB'"
Else UserISPMLIB = ''

"DSNADD ISPMLIB "UserISPMLIB,
"'TP.AGEN.T85.PROD.TEHBMSG0.USER'",
"'TP.AGEN.T85.PROD.TEHBMSG0'",
"'TP.PEA860.PROD.MLIB'",
"'TP.DB2.BBC2.DSNSPFM'",
"'TP.QMF.BBC2.SDSFMLBE'"
Then UserISPMLIB = "'TR."Userid".ISPMLIB'"
Else UserISPMLIB = ''

"DSNADD ISPMLIB "UserISPMLIB,
"'TP.AGEN.T85.PROD.TEHBMSG0.USER'",
"'TP.AGEN.T85.PROD.TEHBMSG0'",
"'TP.PEA860.PROD.MLIB'",
"'TP.DB2.BBC2.DSNSPFM'",
"'TP.QMF.BBC2.SDSFMLBE'"

If SysDsn("'TR."Userid".ISPPLIB'") = "OK"
Then UserISPPLIB = "'TR."Userid".ISPPLIB'"
Else UserISPPLIB = ''

"DSNADD ISPPLIB "UserISPPLIB,
"'TP.AGEN.T85.PROD.TEHBPNL0.USER'",
"'TP.AGEN.T85.PROD.TEHBPNL0'",
"'TP.PEA860.PROD.PLIB'",

If SysDsn("'TR."Userid".ISPPLIB'") = "OK"
Then UserISPPLIB = "'TR."Userid".ISPPLIB'"
Else UserISPPLIB = ''

"DSNADD ISPPLIB "UserISPPLIB,
"'TP.AGEN.T85.PROD.TEHBPNL0.USER'",
"'TP.AGEN.T85.PROD.TEHBPNL0'",
"'TP.PEA860.PROD.PLIB'",
"'TP.DB2.BBC2.DSNSPFP'",
"'TP.DB2.BBC2.DSNPFPE'",
"'TP.DB2.DBA.ISPPLIB'",
"'TP.QMF.BBC2.SDSFPLBE'"

...
Back to top
View user's profile Send private message
Pedro

Global Moderator


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

PostPosted: Sun Nov 26, 2023 10:06 am
Reply with quote

I think your site has a custom ISR@PRIM panel that has the options you desire.

You need to figure out where that panel is. Do this on the userid where it works:

1. display the options panel
2. issue the PANELID command. The name of the panel (probably ISR@PRIM) should appear in the upper left of the screen.
3. note the name of the panel
4. Issue TSO ISRDDN in the primary command line.
5. In the ISRDDN panel, type MEMBER ISR@PRIM in the primary command line.
6. it should find the dataset which contains that member. There might be more than one!

Make sure the same setup is done for the userid where it does not currently work. Make sure the customized ISR@PRIM is found first in the concatenation, rather than the IBM version.
Back to top
View user's profile Send private message
Pedro

Global Moderator


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

PostPosted: Sun Nov 26, 2023 10:19 am
Reply with quote

fyi. your exec seems to have several logic errors and I think also syntax errors. For example, you have some ELSE statements that do not match an IF statement and the like. And IF statement without the THEN statement.

When editing, issue HI ON, and HI AUTO to get context sensitive highlighting.

And some of the assignment statements are duplicates of the previous statement.

You turn off messages so maybe you are not seeing errors displayed. You should probably also have the trace on to make sure it works as intended.

Is "Address TPO" correct? I would have expected it to be "Address TSO".
Back to top
View user's profile Send private message
Joerg.Findeisen

Senior Member


Joined: 15 Aug 2015
Posts: 1308
Location: Bamberg, Germany

PostPosted: Sun Nov 26, 2023 10:27 am
Reply with quote

Also the initial REXX is not quoted correctly. Maybe c&p error.
Back to top
View user's profile Send private message
M Lee Klein

New User


Joined: 08 Feb 2022
Posts: 39
Location: USA

PostPosted: Sun Nov 26, 2023 9:34 pm
Reply with quote

I did a search/replace and may have obstructed the syntax in addition to dataset names. My apologies.

The ISR@PRIM exists where it should and has the QMF and SPUFI items listed. There is also a PNL Assign member in the PDS. Both members were copied from the working userid to the nonworking userid PDS.

Should the 'TR."Userid".SYSEXEC have members in it? The working userid has multiple but the nonworking userid has none.
I'm wondering if there are other datasets I need to copy for the nonworking userid.

I will have the users execute those commands tomorrow and will compare.
Back to top
View user's profile Send private message
Pedro

Global Moderator


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

PostPosted: Mon Nov 27, 2023 3:06 am
Reply with quote

re: "PNL Assign member"

I have no idea of what that means. But it likely has nothing to do with the primary ISPF menu.
Back to top
View user's profile Send private message
Pedro

Global Moderator


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

PostPosted: Mon Nov 27, 2023 3:21 am
Reply with quote

re: "ISR@PRIM exists where it should"
and: "execute those commands tomorrow"

You do not know if the primary menu panel exists in the correct place until after the user executes the setup command.
Back to top
View user's profile Send private message
M Lee Klein

New User


Joined: 08 Feb 2022
Posts: 39
Location: USA

PostPosted: Mon Nov 27, 2023 3:55 am
Reply with quote

I am confused. So the nonworking user has

BROWSE TR.TRCOMDR.ISPPLIB
Name Prompt Size
_ ISR@PRIM 105 1
_ PNLASSGN 47 2

ISPPLIB contains ISR@PRIM which has this section.

%TMS +CA/1
%FTP +TCP/IP FTP %SAR +SAR % QMF +QMF (DEV) %IN +INSYNC
%Q +QUICKREF %SPU +SPUFI % QMF2 +QMF2 (PROD) %XPED +XPEDITER
%

Are you saying that TSO is possibly using a member, ISR@PRIM, which is located elsewhere and that's why we need the user to executed PANELID?
Back to top
View user's profile Send private message
Pedro

Global Moderator


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

PostPosted: Mon Nov 27, 2023 12:03 pm
Reply with quote

re: "ISPPLIB contains ISR@PRIM"

That is ambiguous.

What is important is that the ISPPLIB DD statement has a data set with your version of the panel at the time that you start ISPF. And that your version of the panel is found first when ISPF looks for it. The order of the data sets in the ISPPLIB concatenation is important. You have at least two versions: the panel with your DB2 options and the panel without them.

Your exec uses something called DSNADD to modify the concatenation. It is not a standard program, so nobody here knows what it does.

I was suggesting that you use PANELID because there is a slight chance that the menu panel is something other than ISR@PRIM. Though, now that you mention that it is in the data set, it is indeed ISR@PRIM. I suggested the use of ISRDDN so that you can show us the data sets that are in the ISPPLIB concatenation.

 
Back to top
View user's profile Send private message
M Lee Klein

New User


Joined: 08 Feb 2022
Posts: 39
Location: USA

PostPosted: Mon Nov 27, 2023 6:06 pm
Reply with quote

Thank you for that explanation and for the suggestions you have provided. Clearly I need to read up on REXX as well as TSO/ISPF. My coworker is gone permanently so I must learn and perform a lot of new tasks for the next couple of months until a replacement can be found.

So thankful this forum exists!

MK
Back to top
View user's profile Send private message
M Lee Klein

New User


Joined: 08 Feb 2022
Posts: 39
Location: USA

PostPosted: Mon Nov 27, 2023 7:22 pm
Reply with quote

So the nonworking user shows ISRTSO when he does the PANELID ON command. Is that the IBM default?
Back to top
View user's profile Send private message
Pedro

Global Moderator


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

PostPosted: Mon Nov 27, 2023 11:24 pm
Reply with quote

I believe that panel ISRTSO is ISPF option 6. You need to get the panelid from the primary option menu.

That is, the image in your initial post shows what seems like the primary option menu. You need to determine the panelid of the panel that has the options that you want.

The panelid command is a toggle that turns on the display of the panel name. It stays on until you exit ISPF.
Back to top
View user's profile Send private message
Pedro

Global Moderator


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

PostPosted: Mon Nov 27, 2023 11:58 pm
Reply with quote

I rewrote my earlier instructions to be more clear:

1. Start ISPF
2. issue the PANELID command. The name of the panel should appear in the upper left of the screen.
3. display the options panel.
4. note the name of the options panel (probably ISR@PRIM).
5. Issue TSO ISRDDN in the primary command line.
6. In the ISRDDN panel, type MEMBER ISR@PRIM in the primary command line.
7. it should find the dataset which contains that member. There might be more than one! ISPF uses the first one in the concatenation.
Back to top
View user's profile Send private message
M Lee Klein

New User


Joined: 08 Feb 2022
Posts: 39
Location: USA

PostPosted: Tue Nov 28, 2023 6:25 pm
Reply with quote

I'm surprised to learn that TRCOMDR.ISPPLIB was not listed as one of the locations of ISR@PRM and was not listed at all when executing the TSO ISRDDN command. So the system is using the wrong ISRTSO because the correct one is in TRCOMDR.ISPPLIB?


The locations where the member was found was
Dataset Name
ddname: ISPPLIB SYS9.ISPPLIB
ISP.SISPPENU
SYS2.ISPPLIB

The working userid was out and will send in screenshots today.[/img]
Back to top
View user's profile Send private message
M Lee Klein

New User


Joined: 08 Feb 2022
Posts: 39
Location: USA

PostPosted: Tue Nov 28, 2023 6:37 pm
Reply with quote

Screenshot
Back to top
View user's profile Send private message
Pedro

Global Moderator


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

PostPosted: Wed Nov 29, 2023 12:50 am
Reply with quote

re: "I'm surprised to learn that TRCOMDR.ISPPLIB was not listed "

Probably the setup command is not working correctly. As suggested earlier, you need to enable the trace and allow messages to debug it.

Also, make sure that both users use the same logon proc and if there is an initial command in the logon screen, that it is the same.
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 -> DB2

 


Similar Topics
Topic Forum Replies
No new posts Preserve changes to ISPF Panel Variables TSO/ISPF 1
No new posts can an ISPF appl save user changes in... TSO/ISPF 14
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 DELETE SPUFI DB2 1
Search our Forums:

Back to Top