Table Enhancement Category

Standard Database Tables and Structures defined by SAP within the ABAP Data Dictionary can be enhanced by customers using Custom includes or append structures. The table enhancement category provides a way of limiting this customization so that dependent objects are not negatively affected. You, therefore, need to understand how this works before you are able to enhance a table correctly. 

For this reason, you must select an enhancement category when you create a new SAP table. Also within ABAP programs without an active Unicode check, table and structure enhancements can cause syntax/runtime errors during type checks, particularly if they contain deep structures.

In programs where there is an active Unicode check, statements, operand checks, and use of offset and length are problematic. For example, if numeric or deep components are inserted into a purely character-type structure it would lose its character type nature.

Available Table Enhancement Categories

Depending on the definition of the structure, the enhancement categories available within your SAP system are as follows:

  • Can be enhanced (Deep)
    The structure and its enhancement may contain components whose data type can be of any type.
  • Can be enhanced (character-type or numeric)
    The structure and its enhancement must not contain any deep data types (tables, references, strings).
  • Can be enhanced (character type)
    All structure components and their enhancements must be character-type (C, N, D, or T). The original structure and all enhancements through Customizing includes or through append structures are subject to this limitation.
  • Can not be enhanced
    The structure must not be enhanced.
  • Not classified
    This is a catch-all for tables & structures that have no category set. You should only use this category for temporary status and must not be chosen for creating structures.

WARNING message if Enhancement category missing

If you don’t choose an enhancement category you get the warning “Enhancement category for table missing” when you try to activate it. It is only a warning so you could just ignore it but this is not recommended.

Defining the enhancement category result implicitly

To help you decide which enhancement category an object should be there are a number of rules for defining it implicitly, based on the structures set up and the classification of the types used. These are as follows:

  1. If the object contains at least one numeric type or has a substructure or component (field has a structure/table/view as its type) that can be enhanced numerically, the object can not enhance character-type. It can still be enhanceable character-type or numeric.
  2. If the object already contains a deep component (i.e. string, reference, or table type) or has a substructure or component that is enhanceable (deep) then the object itself can be enhanced to the same level.
  3. If the object does not contain any substructures or components that are marked as enhanceable, you can select cannot be enhanced. If the structure has not yet been enhanced, you can choose the category cannot be enhanced in any case.

When creating new tables and structures within the ABAP Dictionary the SAP system will propose “Can be enhanced (deep)” as the default value. If you choose a more restrictive category for a particular structure, then only the classification levels that adhere to the rules above are allowed.

It is not possible to choose an enhancement classification that is more restrictive than that resulting implicitly from the structure set up and from the classification of the types used. Only the allowed categories will be proposed for selection in the maintenance user interface.

If a structure depends on one or several other structures, the most restrictive category is chosen as implicit classification.

About the Author se80