View previous topic :: View next topic
|
Author |
Message |
M Lee Klein
New User
Joined: 08 Feb 2022 Posts: 39 Location: USA
|
|
|
|
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 |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2593 Location: Silicon Valley
|
|
|
|
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 |
|
|
M Lee Klein
New User
Joined: 08 Feb 2022 Posts: 39 Location: USA
|
|
|
|
There is a logon script but instead of executing the user gets this:
Enter dataset name |
|
Back to top |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2593 Location: Silicon Valley
|
|
|
|
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 |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2593 Location: Silicon Valley
|
|
|
|
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 |
|
|
M Lee Klein
New User
Joined: 08 Feb 2022 Posts: 39 Location: USA
|
|
|
|
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 |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2593 Location: Silicon Valley
|
|
|
|
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 |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2593 Location: Silicon Valley
|
|
|
|
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 |
|
|
Joerg.Findeisen
Senior Member
Joined: 15 Aug 2015 Posts: 1329 Location: Bamberg, Germany
|
|
|
|
Also the initial REXX is not quoted correctly. Maybe c&p error. |
|
Back to top |
|
|
M Lee Klein
New User
Joined: 08 Feb 2022 Posts: 39 Location: USA
|
|
|
|
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 |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2593 Location: Silicon Valley
|
|
|
|
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 |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2593 Location: Silicon Valley
|
|
|
|
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 |
|
|
M Lee Klein
New User
Joined: 08 Feb 2022 Posts: 39 Location: USA
|
|
|
|
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 |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2593 Location: Silicon Valley
|
|
|
|
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 |
|
|
M Lee Klein
New User
Joined: 08 Feb 2022 Posts: 39 Location: USA
|
|
|
|
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 |
|
|
M Lee Klein
New User
Joined: 08 Feb 2022 Posts: 39 Location: USA
|
|
|
|
So the nonworking user shows ISRTSO when he does the PANELID ON command. Is that the IBM default? |
|
Back to top |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2593 Location: Silicon Valley
|
|
|
|
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 |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2593 Location: Silicon Valley
|
|
|
|
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 |
|
|
M Lee Klein
New User
Joined: 08 Feb 2022 Posts: 39 Location: USA
|
|
|
|
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 |
|
|
M Lee Klein
New User
Joined: 08 Feb 2022 Posts: 39 Location: USA
|
|
|
|
Screenshot |
|
Back to top |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2593 Location: Silicon Valley
|
|
|
|
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 |
|
|
|