IMS Command Language Modification facility (DFSCKWD0)

Use the IMS™ Command Language Modification facility (DFSCKWD0) to modify the command keyword table.

About this facility

Several reasons exist for altering the keyword table. For example, you might want to tailor the keywords and synonyms to satisfy unique requirements. A new keyword or keyword synonym in a new IMS release can conflict with a name already assigned by your installation to a resource such as an LTERM or a transaction. If a new keyword ABC is introduced and you already have an LTERM with the name ABC, you can change the keyword name to ABCDEFG and remove the source of the conflict. If the source of the conflict is the new keyword synonym, you can change or delete the synonym.

Another reason you might want to modify the table is to limit the use of the ALL parameter for certain keywords by changing the parameter's default value from ALL=YES to ALL=NO or ALL=DIS. Using ALL=YES allows the operator to enter IMS commands with the ALL option; this requires a significant increase in storage in the IMS general pool and adversely affects IMS performance. To avoid these negative consequences, you can specify ALL=NO or ALL=DIS to be used with IMS commands except those associated with AOI transactions.

To obtain a listing of the command keyword table, print DFSCKWD0, a member of IMS.SDFSSRC. It contains the IMS keywords and synonyms described in IMS Version 13 Commands, Volume 1: IMS Commands A-M.

Restriction: DFSCKWD0 can only modify type-1 command keywords.

Details about ALL=NO and ALL=DIS options and instructions for modifying them are discussed in the following topics.

The following table shows the attributes of the IMS Command Language Modification facility.
Table 1. IMS command language modification facility attributes
Attribute Description
IMS environments DB/DC, DCCTL, DBCTL.
Naming convention You must name this routine DFSCKWD0 with ALIAS CKWDTABL.
Binding

Example: This shows you how to bind the exit routine into IMS.SDFSRESL.

//LINKIT JOB 1,MSGLEVEL=1    
//LINK EXEC PGM=IEWL,PARM=(RENT,REFR,NCAL,XREF,LIST)
//SYSUT1 DD UNIT=SYSDA,SPACE=(TRK,(20,20),RLSE)
//SYSPRINT DD SYSOUT=A
//SYSLMOD DD DSN=IMS.SDFSRESL,DISP=SHR 
//OBJIN DD DSN=IMS.USERLIB,DISP=SHR  
//SYSLIN DD *       
INCLUDE OBJIN(DFSCKWD0)    
MODE AMODE(31),RMODE(ANY)
ALIAS         CKWDTABL 
ENTRY         DFSCKWD0 
NAME          DFSCKWD0(R)
/*  
Including the routine No special steps are needed to include this routine.
IMS callable services IMS callable services are not applicable for use with this module.
Routine location For the latest version of DFSCKWD0, see the IMS.SDFSSRC library; member name is DFSCKWD0.

Changing the table

Two of the macro statements that appear in the table, KEYWD and SYN, can be replaced to modify the keywords and synonyms. One way of modifying the table is:

  1. Edit module DFSCKWD0.
  2. Change the KEYWD and SYN macro statements.
  3. Reassemble DFSCKWD0.
  4. Relink the reassembled DFSCKWD0 in IMS.SDFSRESL.

Related Reading: IMS Version 13 Commands, Volume 1: IMS Commands A-M contains the list of reserved words, including command keywords, keyword synonyms, and reserved parameters.

Changes to DFSCKWD0 cannot conflict with the names in this list. Keywords can be changed and keyword synonyms can be added, changed, or deleted, as long as the new keyword or synonym is not a reserved word. For example, a new synonym of MSDB for MSDBLOAD cannot be added, because MSDB is a reserved parameter. If MSDB is made a keyword synonym, the /DBDUMP DATABASE MSDB command fails with a syntax error.

KEYWD macro statements must be substituted one-for-one in the table. No new KEYWD macro statements can be added.

KEYWD macro

KEYWD
keyword,LAST=NO|YES,ALL=YES|NO|DIS

Where keyword is the new or changed keyword. LAST=NO and ALL=YES are the defaults and need not be supplied. LAST=YES must be specified if it is the last macro call in the module. A keyword cannot exceed 12 characters in length.

Specifying ALL=NO prevents the use of the ALL parameter with all IMS commands that apply to the keyword being changed (except for commands issued from AOI programs).

For example, specifying ALL=NO for the keyword LTERM prevents the use of the ALL parameter for the following commands:

  • /BROADCAST LTERM ALL
  • /DISPLAY ASSIGNMENT LTERM ALL
  • /DISPLAY LTERM ALL
  • /LOCK LTERM ALL
  • /PSTOP LTERM ALL
  • /PURGE LTERM ALL
  • /START LTERM ALL
  • /STOP LTERM ALL
  • /UNLOCK LTERM ALL

Specifying ALL=DIS prevents the use of the ALL parameter with all /DISPLAY commands that apply to the keyword being changed (except for commands issued from AOI programs).

For example, specifying ALL=DIS for the keyword LTERM prevents the use of the ALL parameter for the following commands:

  • /DISPLAY ASSIGNMENT LTERM ALL
  • /DISPLAY LTERM ALL

SYN macro

SYN
synonym,LAST=YES|NO

Where synonym is the desired synonym. LAST=NO is the default and need not be specified. LAST=YES must be coded if this is the last macro call in the assembly. Synonyms cannot exceed 12 characters in length; they must be defined under the keyword to which they apply.

Error messages

Any error in a macro statement terminates assembly of the keyword table and results in generation of an error message. The remaining macro statements are error checked, but nothing is generated. All macro assembly errors are severity code 16 errors.
KYTBL001 - SEQUENCE ERROR. XXX CANNOT FOLLOW IKEY
A macro was called which cannot immediately follow an IKEY macro call. XXX is either IKEY or SYN. IKEY calls cannot be modified.
KYTBL002 - XXX CALLED WITHOUT ANY PARAMETER
A macro was called without any parameter. XXX is either IKEY, KEYWD, or SYN.
KYTBL003 - XXX IS NOT A VALID INTERNAL KEYWORD
The parameter specified on an IKEY call (XXX) is not known to the system. IKEY calls cannot be modified.
KYTBL004 - KEYWORD TABLE ASSEMBLY TERMINATED
This message appears as a comment after the first error message in a keyword table assembly. All subsequent macro calls will only perform error checking. No code will be generated.
KYTBL005 - SEQUENCE ERROR. KEYWD MUST FOLLOW AN IKEY CALL
A KEYWD macro was called that does not immediately follow an IKEY call.
KYTBL006 - LENGTH ERROR. XXX TOO LONG
The parameter specified on a KEYWD or SYN macro is more than 12 characters in length.
KYTBL007 - INTERNAL KEYWORD 'XXX' HAS NOT BEEN USED
LAST=YES was specified on either a KEYWD or SYN macro call, but not all internal keywords known to the system have been generated. IKEY calls cannot be modified. LAST=YES must appear only on the last macro call in the assembly.
KYTBL008 - XXX CANNOT BE SPECIFIED AGAIN
Internal keyword 'XXX' has already been used. IKEY macro calls cannot be modified.
KYTBL009 - KEYWD MACRO PARAMETER ALL IS INVALID
ALL=NO was erroneously specified on the KEYWD macro at the time the IMS Command Keyword Table (DFSCKWD0) was modified.

Message DFS058 COMMAND COMPLETED EXCEPT xxx y z... uses the keyword table to replace 'xxx' with the keyword associated with the command that caused the message. Therefore, keywords defined by KEYWD macro calls appear in this message. Other messages, however, are prebuilt, and keywords that might have changed will still appear in these.