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.
The ABAP Dictionary also provides standard functions for editing fields on the screen, for example for assigning a screen field an input help.
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 on the database can
then be created from this structure.
Types are used in ABAP programs. 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 of all table fields and
structure components 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 Workbench
The ABAP Dictionary is completely integrated in the ABAP 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, input help, database interface, and development tools always access current data.
The following ABAP program lists the airline carriers (see Flight model) and carrier IDs contained in table SCARR.
DATA: SCARR_TAB TYPE SCARR.
SELECT * INTO SCARR_TAB FROM SCARR.
WRITE: / SCARR_TAB-CARRID, SCARR_TAB-CARRNAME.
Only structure SCARR_TAB is declared in the program. All the information about this structure, such as the field names, data types and field
lengths, are copied from table SCARR, which is defined in the ABAP Dictionary. This information about table SCARR is called from the ABAP
Dictionary when the program is generated.
This means that the source text of the program need not be adjusted when a change is made to table SCARR, for example when the length
of a table field is changed. 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 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