View previous topic :: View next topic
|
Author |
Message |
jackzhang75
Active User
Joined: 09 Jun 2014 Posts: 125 Location: US
|
|
|
|
Hi Experts,
In our system ,if i type certain letter like "Z" on command line when browsing or editing member/JCL it will excute REXX program ABCD.REXXLIB(ZOOM) to do certain functions. so my question is how zos know which REXX to excute since in ABCD.REXXLIB we have thounsands of REXX. I think there must be somewhere to let system know which rexx to be excuted when you type letter Z on the command line. Anyone know where is this setting ? even for REXX program ZOOM we have different version like ZOOMA ,ZOOMB,ZOOMC .... system first excute ZOOM but if this member is deleted it will excute other version of ZOOM so i want to know how this works? How system know which REXX to excute?
Thank you |
|
Back to top |
|
|
prino
Senior Member
Joined: 07 Feb 2009 Posts: 1306 Location: Vilnius, Lithuania
|
|
|
|
At least two possibilities:
- Command table, see ISPF 3.9
- Site-modified panel, ISRDDN M {panel-name}
|
|
Back to top |
|
|
Willy Jensen
Active Member
Joined: 01 Sep 2015 Posts: 712 Location: Denmark
|
|
|
|
As to where a command is executed from, look at your SYSEXEC concatenation for starters (do TSO ISRDDN). Be aware that there might be additional libraries allocated by the ALTLIB command, do TSO ALTLIB DISPLAY to find out. And if the command is a real program then it gets even more complicated.
I am not sure I understand what you mean by your last paragraph. If ZOOM isn't found, the system will not go and look for similar names, it will fail the command. |
|
Back to top |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2545 Location: Silicon Valley
|
|
|
|
Quote: |
system first execute ZOOM but if this member is deleted it will execute other version of ZOOM so i want to know how this works? How system know which REXX to execute? |
SYSEXEC is a concatenation of data sets. The system will search through each of data sets until it finds the member you are trying to execute. It searches in the order of the concatenation.
A REXX program can also exist in the SYSPROC concatenation.
And as Willy mentioned earlier, the ALTLIB command can alter the search for the member.
If you use the TSO EXEC 'my.pds(myrexx)' command, it will search my.pds for unqualified calls to other execs, before the normal search. |
|
Back to top |
|
|
Willy Jensen
Active Member
Joined: 01 Sep 2015 Posts: 712 Location: Denmark
|
|
|
|
Something else, the OP said
Quote: |
i type certain letter like "Z" on command line |
- but a command table verb must be 2-8 characters so it can't be that.
Then he goes on to say
Quote: |
when browsing or editing member/JCL |
so Z can't be an edit macro either as he claims it works in browse. I do seem to remember seing something about edit macros working in browse in newer z/OSs, but I just tried in a 2.2 system and it did not work.
I think I would like a bit of clarification here.
@jackzhang75, please clarify what works and in which situation. |
|
Back to top |
|
|
jackzhang75
Active User
Joined: 09 Jun 2014 Posts: 125 Location: US
|
|
|
|
Thank you everyone. I will verify it and update the result. |
|
Back to top |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2545 Location: Silicon Valley
|
|
|
|
You can use an editor macro to setup your own commands. For example:
Code: |
Address ISREDIT "DEFINE Z ALIAS MYREXX" |
Where, if you type Z in the primary command line it will execute MYREXX.
As far as I know, it only works in the editor and in view. Perhaps the OP is confusing browse with view. |
|
Back to top |
|
|
jackzhang75
Active User
Joined: 09 Jun 2014 Posts: 125 Location: US
|
|
|
|
I can see the ABCD.REXXLIB that contain the REXX is on top of SYSEXEC concatenation and i dont have problem with that. My question really is how system know which REXX member to excute inside ABCD.REXXLIB when i press Z when borwse or edite JCL. This ABCD.REXXLIB contains thoudsand of REXX program how system know what is right REXX to excute? Also Z is the input for REXX and not REXX member name.
Like when i type Z on the command line , it actually excute ABCD.REXXLIB(ZOOM)
Code: |
Command ===> z Scro
000011 //CMSC00 EXEC PGM=FDBMMPLU,DYNAMNBR=125,
000012 // PARM='CMSC,CMSC,0I',
000013 // REGION=96M |
Coded - do it yourself next time and do not confuse others |
|
Back to top |
|
|
don.leahy
Active Member
Joined: 06 Jul 2010 Posts: 765 Location: Whitby, ON, Canada
|
|
|
|
Examine your SITECMDS or USERCMDS table, if any, using ISPF 3.9. For example:
Code: |
Verb T Action
DBA 0 SELECT SUSPEND CMD(
OBJ 0 SELECT SUSPEND CMD(
SQLSHOW 3 SELECT SUSPEND CMD(
SDSF 2 SELECT SUSPEND CMD(
ACMCHECK 4 SELECT SUSPEND CMD( |
The value in the T column means that the command name may be truncated to that number of characters. For example, in my setup the command SHOWSQL can be specified as SQL.
In your case their may be an entry for the ZOOM command that allows you to shorten it to just 1 character. |
|
Back to top |
|
|
Willy Jensen
Active Member
Joined: 01 Sep 2015 Posts: 712 Location: Denmark
|
|
|
|
The ISPF manual states that a command table entry verb must be 2-8 characters.
@jackzhang75:
1) see if you can find a member 'Z' somewhere in your SYSEXEC or SYSPROC concatenations, not neccessarily in ABCD.REXXLIB. I just realized I forgot to mention SYSPROC in an earlier reply.
2) verify that you can do 'z Scro' in browse.
To clarify:
The ISPF editor (that is when doing EDIT or VIEW) will
1) check if the command is an internal command
2) scan the ISPF command table for the name.
3) scan your SYSEXEC and SYSPROC concatenations for the name. Ok, edit macros may also be real programs, but I would guess that Z is not.
You can use the edit DEFINE command to establish an alias or alternate name for a primary command, but as far as I know this will only work in EDIT. |
|
Back to top |
|
|
don.leahy
Active Member
Joined: 06 Jul 2010 Posts: 765 Location: Whitby, ON, Canada
|
|
|
|
Willy Jensen wrote: |
The ISPF manual states that a command table entry verb must be 2-8 characters.
|
Quite right. I should have tried it myself before giving that advice. My bad.
The error message you get is a bit confusing and slightly misleading:
Code: |
Command table truncation values must be within the length of the verb. |
|
|
Back to top |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2545 Location: Silicon Valley
|
|
|
|
re: typing Z and ZOOM executing
It can be any of these:
1. Z is a member of the SYSEXEC concatenation and it explicitly calls a different member named ZOOM.
2. Z is a member name alias of ZOOM. That is, they are actually the same member.
3. Z was setup as an alias of ZOOM through the initial editor macro (or another editor macro)
4. A modified editor panel that examines the ZCMD variable and resets it to ZOOM when Z is encountered. This might work for Browse also. |
|
Back to top |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2545 Location: Silicon Valley
|
|
|
|
We can not do any research on your system, so we can only guess.
To do your own research try:
to search your concatenations for a member named 'z'. If it finds it, use V line command to view its contents. |
|
Back to top |
|
|
jackzhang75
Active User
Joined: 09 Jun 2014 Posts: 125 Location: US
|
|
|
|
Hi Pedro,
Thank you for your ansower. i did find the Z using ISRDDN M Z
Here is the content so is this REXX belong to the option 3 that you mentioned ealier?
3. Z was setup as an alias of ZOOM through the initial editor macro (or another editor macro)
Code: |
********************************* Top of Data ****************************
/*: REXX edit macro to browse data set pointed-to by cursor */
address isredit
'macro (userarg)' /* only way to get user input is to start */
'(line col) = CURSOR ' /* macro here, this causes loss of cursor */
/* say 'calling tsxzoom' */
call tsxzoom 'Z' '|' line col 'I' userarg;
if RESULT <> 0 & RESULT <> 12
then say 'tsxzoom passed unknown RESULT of 'RESULT
exit RESULT
; |
|
|
Back to top |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2545 Location: Silicon Valley
|
|
|
|
No, this is actually #1:
Quote: |
1. Z is a member of the SYSEXEC concatenation and it explicitly calls a different member named ZOOM. |
Except, it is calling a member named tsxzoom. Search for that member now and see what it does. |
|
Back to top |
|
|
|