ABAP Dictionary
You can enter and manage data definitions (metadata) in the ABAP Dictionary, permitting a central description of all the data used in the system, without redundancies.
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.
If you enter an item of data once in the ABAP Dictionary, it will be available throughout the system at all times. Newly entered and modified data is made available automatically to all system components, ensuring data integrity, data consistency, and data security.
What Information is Stored in the ABAP Dictionary?
The most important object types in the ABAP Dictionary are tables, views and structures.
Tables are defined in the ABAP Dictionary independently of the database. You can use this definition to physically create the table with the same structure on the underlying database. You can also define views, that is logical views on several tables, in the ABAP Dictionary and store them on the database.
Structures to be used in ABAP programs are also defined in the ABAP Dictionary. Structure changes can be made centrally in the ABAP Dictionary and automatically take effect in all programs using the structure.
The ABAP Dictionary also contains the information displayed with the F1 or F4 help for a field in an input template. The text displayed for an F1 help is stored for a data element and describes the contents of a table field. The list of possible input values which appears for the F4 help is generated 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. This high degree of integration of the ABAP Dictionary is one of the principal reasons for its outstanding performance. 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.
When defining screens, for example, the developer simply positions on a field of the screen. All the required information, such as key word and check, is taken directly from the ABAP Dictionary.
The developer simply lists the required tables (with the command TABLES:...) in an ABAP program. Work areas are initialized and symbol tables created automatically.

The following ABAP program list the carriers and their carrier IDs contained in table SCARR.
TABLES: SCARR.
SELECT * FROM SCARR.
WRITE: / SCARR-CARRID, SCARR-CARRNAME.
ENDSELECT.
In the program only the table SCARR is declared (with the instruction TABLES: SCARR. All the information about this table, such as field names, data types and field lengths are 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 program is simply regenerated when the call is made, thereby retrieving up-to-date information about the table from the ABAP Dictionary.

Activation of Objects
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, activation will not take place.
Display of Information in the ABAP Dictionary
The ABAP Repository Information System provides the user with a wide variety of options for analyzing the structure of data in the ABAP Dictionary and its dependencies. As a result, the user has a high level of transparency of the data structure.
