In release ISPF v2.1 (ISPF-like product from Wally Mclaughlin), the command table utility was introduced as option 3.9 (Create/change an application command table).
A command table is an actual ISPF table stored in the ISPTTLIB library. Depending on your installation standards, the ISPTABL DD most likely points to a user id dataset and may be one of several concatenated datasets under the ISPTTLIB DD.
A command table allows user-defined commands (a type of a short-cut) to be declared and used in the users ISPF session.
When ISPF 2.1 initializes at start of a logon procedure, it loads (among other load and initialization activities) the associated system command table (if available).
Typically, the starting APPLID is ISP, therefore, ISPCMDS system command table is loaded.
During the ISPF session, if a new application is started (e.g. SELECT PGM(xyz) NEWAPPL(LB44)), the associated application command table (LB44CMDS) is loaded (if available). While in this application, command table searches are performed across LB44CMDS and ISPCMDS.
This post is based on my personal usage of command table entries with ISPF v2.1 and v2.2.
Command Table Utility
Option 3.9 presents the below screen to select the command table for maintenance using the assigned 4-byte ISPF application id (APPLID).
-------------------------- COMMAND TABLE UTILITY ----------------------------
COMMAND ===>
ENTER/VERIFY APPLICATION ID BELOW:
APPLICATION ID ===>
The name of the command table to be processed is formed by prefixing
the application ID to the string 'CMDS'. For example:
APPLICATION ID ===> TST
results in a command table name of 'TSTCMDS'.
After the application id is provided, a list of command table entries is displayed for maintenance (insert, change or delete) as spelled out in the top portion of the screen.
-------------------------- COMMAND TABLE UTILITY ---------------- Row 1 of 15 COMMAND ===> SCROLL ===> PAGE Insert, Delete, and Change command entries. Underscores need not be blanked. Enter END command to save changes or Cancel to end without saving. VERB T ACTION DESCRIPTION ____ ALTT 4 ALIAS END ANTOHER END ____ CFLDSI 6 SELECT CMD(%CFLDSI) DISPLAY SESSION ALLOCATED FILES (TSO) ____ CLOG 4 SELECT CMD(%CLOG) NEWAPPL(ISP) DISPLAY LOG DISPOSITION CLOGIT ____ CLOGB 5 SELECT CMD(%CLOG BROWSE) NEWAPPL(ISP) BROWSE LOG CLOGIT ____ CLOGD 5 SELECT CMD(%CLOG DELETE) NEWAPPL(ISP) DELETE LOG CLOGIT ____ CLOGKN 6 SELECT CMD(%CLOG KEEP) NEWAPPL(ISP) KEEP LOG, NEW CLOGIT ____ CLOGPD 6 SELECT CMD(%CLOG PRINT) NEWAPPL(ISP) PRINT AND DELETE LOG CLOGIT
When maintenance is complete, press PF3 to save the changes.
Each time a command table is modified, the users ISPF session must be restarted for the new table entries to take affect.
How it works
When a command is entered (in the ISPF command line), ISPF searches the application command table (if one is defined) followed by a subsequent search against the system command table. If a command is found, the command is executed. If a command is not found, control is passed to the dialog with the command as submitted by the user.
Declaring Commands
COMMAND TABLE - ISP ------------------------------------------------------ COMMAND ===> SCROLL ===> PAGE Insert, Delete, and Change command entries. Underscores need not be blanked. Enter END command to save changes or Cancel to end without saving. VERB T ACTION DESCRIPTION ____ ________ _ ____________________________________________________________ _________________________________________________________ ******************************* BOTTOM OF DATA *******************************
Each table entry is comprised of four columns as described below:
VERB | name of command (2-8 characters, must begin with alphabetic character) |
T | minimum number of characters to enter to find a match |
ACTION | action to be performed when command is entered |
DESCRIPTION | brief description of command purpose |
Valid VERBs and example commands are listed below:
SELECT | control given to command, program or panel; follows same syntax as SELECT service (e.g. SELECT PGM() PARM() NEWAPPL()) |
ALIAS | Assigns an alias command to another command. No parameters allowed. Alias command cannot be another application or system command entry |
PASSTHRU | pass command to dialog |
NOP | Places the command in an ‘inactive’ state and ISPF displays ‘invalid command’ message when encountered |
blank | Ignore the table entry and continue scanning command table; an alternative to ‘comment out’ the command! |
VERB: SELECT
VERB T ACTION
DESCRIPTION
____ CLOG____ 6 SELECT CMD(%CLOG) NEWAPPL(ISP)______________________________
Display ISPF LOG disposition_____________________________
When the command CLOG is entered, the action “SELECT CMD(%CLOG) NEWAPPL(ISP)” is executed displaying the ISPF LOG disposition panel.
VERB: ALIAS
VERB T ACTION
DESCRIPTION
____ FIN_____ 3 ALIAS END___________________________________________________
Another END______________________________________________
When the command FIN is entered, the action “ALIAS END” is executed substituting END as the submitted command.
VERB: PASSTHRU
VERB T ACTION
DESCRIPTION
____ SETPASS_ 7 PASSTHRU____________________________________________________
Pass command to dialog___________________________________
When the command SETPASS is entered, the action “PASSTHRU” interrupts further search of the command table entries and the SETPASS command is passed to invoking dialogue.
VERB: NOP
VERB T ACTION
DESCRIPTION
____ SETNOP__ 3 NOP_________________________________________________________
Inactive command_________________________________________
When the command SETNOP is entered, the action “NOP” interrupts further search of command table entries and displays an error message (inactive command).
VERB: BLANK
VERB T ACTION
DESCRIPTION
____ SETBLK__ 6 ____________________________________________________________
Ignore command___________________________________________
When the command SETBLK is entered, the action “” ignores the found table entry and search of command table entries continues!
Limitations
- Not all command table declaration or execution functionality (per IBM ISPF version) is implemented under ISPF v2.2
- Use of &ZPARM is not implemented in ISPF v2.2 (command table utility option 3.9)
- ALIAS verb only allows a command with no subsequent parameters
- After returning from a command defined as a command table entry, the typed command remains in the COMMAND line. Ensure you clear the previously executed command before continuing to prevent resubmission.
Closing
Increase your ISPF productivity by using shorter commands (from the ISPF command line) by using command table entries for your user ISPF session.
A good general reference ISPF v2.2 from Wally Mclaughlin is SC34-2047-0 SPF Program Reference from March 1981 and SC34-2036-1 SPF Dialog Management Services from March 1981.
Keep in mind: ISPF v2.2 from Wally Mclaughlin may not support or partially support IBM-proper documented functionality.
Below are some suggested commands for your use with ISPF v2.2…
-------------------------- COMMAND TABLE UTILITY ---------------- Row 1 of 15 COMMAND ===> SCROLL ===> PAGE Insert, Delete, and Change command entries. Underscores need not be blanked. Enter END command to save changes or Cancel to end without saving. VERB T ACTION DESCRIPTION ____ CFLDSI 6 SELECT CMD(%CFLDSI) DISPLAY SESSION ALLOCATED FILES (TSO) ____ CLOG 4 SELECT CMD(%CLOG) NEWAPPL(ISP) DISPLAY LOG DISPOSITION CLOGIT ____ CLOGB 5 SELECT CMD(%CLOG BROWSE) NEWAPPL(ISP) BROWSE LOG CLOGIT ____ CLOGD 5 SELECT CMD(%CLOG DELETE) NEWAPPL(ISP) DELETE LOG CLOGIT ____ CLOGKN 6 SELECT CMD(%CLOG KEEP) NEWAPPL(ISP) KEEP LOG, NEW CLOGIT ____ CLOGPD 6 SELECT CMD(%CLOG PRINT) NEWAPPL(ISP) PRINT AND DELETE LOG CLOGIT ____ DALCDS 6 SELECT CMD(DALCDS) NEWAPPL(DALC) ____ DFSPC 5 SELECT CMD(DFSPC) NEWAPPL(DFSP) ____ DUCBD 5 SELECT CMD(DUCBD) NEWAPPL(DUCB)
Please use the comment box below or the contact us link on the menu bar to communicate any suggestions, improvements, corrections or issues regarding this post.
Also, please share any personal experiences with command table entries not described in this post.
Enjoy,
Larry Belmontes