Purpose
Data definitions (metadata) are created and managed in the ABAP Dictionary. The ABAP Dictionary permits a central description of all the data used in the system without redundancies. New or modified information is automatically provided for all the system components. This ensures data integrity, data consistency and data security.
You can create the corresponding objects (tables or views) in the underlying relational database using these data definitions. The ABAP Dictionary therefore describes the logical structure of the objects used in application development and shows how they are mapped to the underlying relational database in tables or views.
What Information is Stored in the ABAP Dictionary?
The most important object types in the ABAP Dictionary are tables, views, types, domains, search helps and lock objects.
Tables are defined in the ABAP Dictionary independently of the database. A table having the same structure is then created from this table definition in the underlying database. Views are logical views on more than one table. The structure of the view is defined in the ABAP Dictionary. A view can then be created in the database from this structure. Types are used in ABAP program. The structure of a type can be defined globally in ABAP programs. Changes to a type automatically take effect in all the programs using the type. Lock objects are used to synchronize access to the same data by more than one user. Function modules that can be used in application programs are generated from the definition of a lock object in the ABAP Dictionary.Different fields having the same technical type can be combined in
domains. A domain defines the value range for the input values of all the fields that refer to this domain.The ABAP Dictionary also contains the information displayed with the F1 and F4 help for a field in an input template. The documentation about the field is created for a
data element that describes the meaning of the contents of a table field. The list of possible input values that appears for the input help is created by a foreign key or a search help.Integration in the ABAP Development Workbench
The ABAP Dictionary is completely integrated in the ABAP Development Workbench. The R/3 System works interpretatively, permitting the ABAP Dictionary to be actively integrated in the development environment. Instead of the original objects, the interpreters see only internal representations of these objects.
These internal representations are adjusted automatically when the system finds that changes have been made in the ABAP Dictionary. This ensures that the screen and ABAP interpreters, online help, database interface, and development tools always access current data.

The following ABAP program lists the airline carriers (see
TABLES: SCARR.
SELECT * FROM SCARR.
WRITE: / SCARR-CARRID, SCARR-CARRNAME.
ENDSELECT.
Only the table SCARR is declared (with the instruction TABLES: SCARR.) in the program. All the information about this table, such as field names, data types and field lengths is defined in the ABAP Dictionary and is retrieved from there when the program is generated.
This means that the source text of the program need not be adjusted when a change is made to the table, for example when the length of a field is altered. The next time the program is called, the system automatically determines that the structure of table SCARR has changed. The program is simply regenerated, thereby retrieving up-to-date information about table SCARR from the ABAP Dictionary.
When you work on development projects, objects of the ABAP Dictionary can be changed any number of times before being
activated and made available to the operative components of the system. Objects can have both an active and an inactive (revised) version in the ABAP Dictionary at the same time.Inactive ABAP Dictionary objects have no effect on the runtime system (ABAP processor, database interface). This permits greater changes to several objects without impairing the executability of the system. The objects can only be activated together when they have all been changed.
When an ABAP Dictionary object is activated, a check is made to ensure that it is consistent with objects that are already active. If it is found not to be consistent, it is not activated.