You use the ABAP Dictionary to create and manage data definitions (metadata). 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.
The ABAP Dictionary supports the definition of user-defined types (data elements, structures and table types). You can create the corresponding objects (tables or views) in the underlying relational database using these data definitions. The ABAP Dictionary 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 input help to a screen field.
The ABAP Dictionary is completely integrated in the ABAP Workbench. The SAP 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 figure below shows these relations between the ABAP Dictionary and other components of the system.
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 be activated together only when they all have been changed.
The most important object types in the ABAP Dictionary are:
Tables are defined in the ABAP Dictionary independently of the database. From this table definition follows the creation of a table with the same structure in the underlying database.
Views are logical views of more than one table. The structure of the view is defined in the ABAP Dictionary. A view of the database can then be created from this structure.
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.
These 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. To create documentation about a field, you have to create documentation for a data element that describes the meaning of the contents of the corresponding table field. The list of possible input values that appears for the input help is created by a foreign key or a search help .
This example shows how a simple program uses the ABAP Dictionary.
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.
The program declares only structure SCARR_TAB. 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 you do not need to adjust the source text of the program when you make a change to table SCARR, for example when you change the length of a table field. The next time the program is called, the system automatically determines that the structure of table SCARR has changed. The system regenerates the program, thereby retrieving up-to-date information about table SCARR from the ABAP Dictionary.