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

How system know which REXX to excute?


IBM Mainframe Forums -> CLIST & REXX
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
jackzhang75

Active User


Joined: 09 Jun 2014
Posts: 125
Location: US

PostPosted: Thu Jul 06, 2017 1:09 am
Reply with quote

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
View user's profile Send private message
prino

Senior Member


Joined: 07 Feb 2009
Posts: 1306
Location: Vilnius, Lithuania

PostPosted: Thu Jul 06, 2017 2:11 am
Reply with quote

At least two possibilities:
  • Command table, see ISPF 3.9
  • Site-modified panel, ISRDDN M {panel-name}
Back to top
View user's profile Send private message
Willy Jensen

Active Member


Joined: 01 Sep 2015
Posts: 712
Location: Denmark

PostPosted: Thu Jul 06, 2017 1:34 pm
Reply with quote

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
View user's profile Send private message
Pedro

Global Moderator


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

PostPosted: Fri Jul 07, 2017 6:13 am
Reply with quote

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
View user's profile Send private message
Willy Jensen

Active Member


Joined: 01 Sep 2015
Posts: 712
Location: Denmark

PostPosted: Fri Jul 07, 2017 7:33 pm
Reply with quote

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
View user's profile Send private message
jackzhang75

Active User


Joined: 09 Jun 2014
Posts: 125
Location: US

PostPosted: Mon Jul 10, 2017 8:13 pm
Reply with quote

Thank you everyone. I will verify it and update the result.
Back to top
View user's profile Send private message
Pedro

Global Moderator


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

PostPosted: Mon Jul 10, 2017 9:35 pm
Reply with quote

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
View user's profile Send private message
jackzhang75

Active User


Joined: 09 Jun 2014
Posts: 125
Location: US

PostPosted: Mon Jul 10, 2017 11:17 pm
Reply with quote

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
View user's profile Send private message
don.leahy

Active Member


Joined: 06 Jul 2010
Posts: 765
Location: Whitby, ON, Canada

PostPosted: Tue Jul 11, 2017 12:21 am
Reply with quote

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
View user's profile Send private message
Willy Jensen

Active Member


Joined: 01 Sep 2015
Posts: 712
Location: Denmark

PostPosted: Tue Jul 11, 2017 2:39 am
Reply with quote

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
View user's profile Send private message
don.leahy

Active Member


Joined: 06 Jul 2010
Posts: 765
Location: Whitby, ON, Canada

PostPosted: Tue Jul 11, 2017 8:46 pm
Reply with quote

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
View user's profile Send private message
Pedro

Global Moderator


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

PostPosted: Tue Jul 11, 2017 10:52 pm
Reply with quote

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
View user's profile Send private message
Pedro

Global Moderator


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

PostPosted: Tue Jul 11, 2017 11:03 pm
Reply with quote

We can not do any research on your system, so we can only guess.

To do your own research try:
Code:
ISRDDN M Z

to search your concatenations for a member named 'z'. If it finds it, use V line command to view its contents.
Back to top
View user's profile Send private message
jackzhang75

Active User


Joined: 09 Jun 2014
Posts: 125
Location: US

PostPosted: Tue Jul 11, 2017 11:10 pm
Reply with quote

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
View user's profile Send private message
Pedro

Global Moderator


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

PostPosted: Tue Jul 11, 2017 11:52 pm
Reply with quote

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
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 -> CLIST & REXX

 


Similar Topics
Topic Forum Replies
No new posts Sysplex System won't IPL at DR site I... All Other Mainframe Topics 2
No new posts Running REXX through JOB CLIST & REXX 13
No new posts Error to read log with rexx CLIST & REXX 11
No new posts isfline didnt work in rexx at z/OS ve... CLIST & REXX 7
No new posts run rexx code with jcl CLIST & REXX 15
Search our Forums:

Back to Top