Skip to content

ABAP Keyword Documentation →  ABAP - Dictionary →  Classic Objects in ABAP Dictionary 

Tools for Classic ABAP Dictionary

Classic objects in ABAP Dictionary can be edited using the ABAP Dictionary tool in ABAP Workbench or using the ABAP Development Tools (ADT). The ABAP Dictionary tool in ABAP Workbench covers all classic objects and their attributes. The ADT tools, on the other hand, currently only cover some of these objects.

Other versions: 7.31 | 7.40 | 7.54

The ABAP Dictionary Tool in ABAP Workbench

The ABAP Dictionary tool is integrated into the SAP GUI-based ABAP Workbench and can be called as a standalone tool using the transaction SE11. In all other ABAP Workbench tools, the associated tool for a dictionary object can be called using forward navigation.

The ABAP Dictionary tool in ABAP Workbench includes all functions required to create and edit any classic ABAP Dictionary object. Dictionary objects are edited as form-based objects, which means that their attributes are entered on SAP GUI screens and stored as metadata in the associated system tables when saved.

More information about the ABAP Dictionary tool in ABAP Workbench can be found in the ABAP Dictionary documentation in SAP Help Portal.


In the documentation here, the names of the attributes of classic ABAP Dictionary objects follow the names in the ABAP Dictionary tool in ABAP Workbench.

Tools in ADT

The following ABAP Development Tools (ADT) cover some of the functions of the ABAP Dictionary tool in ABAP Workbench.

Form-Based Tools

For the following classic ABAP Dictionary objects, the ABAP Development Tools (ADT) offer form-based tools that work in a similar way to the ABAP Dictionary tools in ABAP Workbench:

A description of these tools can be found under Working with Classic Objects in ABAP Dictionary.

Source-code-based tools

The ABAP Development Tools (ADT) offer source-code-based editors for the following class ABAP Dictionary objects:

Type groups are edited in ABAP Editor in ADT. The other classic objects are edited in Dictionary DDL. The source code of the classic ABAP Dictionary objects is not, however, saved and transported. Instead, the source code of a classic object is generated from the metadata of the associated system tables. Conversely, the metadata itself is derived from source code directly and saved to the system tables. Like in ABAP CDS, the source code contains SQL parts that define the data structure and annotations (introduced using @) that define attributes.

A short description of the syntax of the Dictionary DDL for classic objects in ABAP Dictionary can be found under the following:

A more detailed description is available in the ADT documentation Syntax of ABAP Dictionary Objects.

The standalone table-specific technical properties of database tables are edited in a form-based tool in ADT and not in Dictionary DDL.


Dictionary DDL also covers the language elements used to define dependency rules. Unlike the source code for classic objects, the source code of these elements is saved and transported.


The following source code shows a definition of the database table SCARR using Dictionary DDL. The annotations defined the technical and semantic attributes of the table. The structure itself is defined after the statement DEFINE TABLE, with further annotations describing the attributes of database fields.

@EndUserText.label : 'Airline'
@AbapCatalog.enhancementCategory : #EXTENSIBLE_CHARACTER_NUMERIC
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #ALLOWED
define table scarr {
  @AbapCatalog.foreignKey.keyType : #KEY
  @AbapCatalog.foreignKey.screenCheck : true
  key mandt  : s_mandt not null
    with foreign key [0..*,1] t000
      where mandt = scarr.mandt;
  key carrid : s_carr_id not null;
  carrname   : s_carrname not null;
  @AbapCatalog.foreignKey.keyType : #NON_KEY
  @AbapCatalog.foreignKey.screenCheck : true
  currcode   : s_currcode not null
    with foreign key [0..*,1] scurx
      where currkey = scarr.currcode;
  url        : s_carrurl not null; }