Skip to Content

Learn about the ABAP Data Dictionary

Open an ABAP package containing Data Dictionary objects and find out more about them.
You will learn
  • How to find objects in the ABAP Dictionary
julieplummer20Julie PlummerNovember 17, 2021
Created by
June 11, 2018


The ABAP Dictionary describes and manages all the data definitions (metadata) used in the ABAP system to work with data types, database tables, and views. In this tutorial, you will open an ABAP package containing some of these objects and find out how they fit together.

You will open an ABAP package, SAPBC_DATAMODEL, and look at the ABAP Dictionary objects in it. This package contains all the object types you will learn about in this tutorial (and more), and is delivered with every ABAP System.

For more information, see Data Types in the ABAP Keyword Documentation.

  • Step 1

    Before you start exploring the Dictionary objects, you will add the relevant package to your favorites for convenience:

    1. In ABAP Development Tools, expand the project that you created, by choosing the arrow on the left:

      Image depicting step1-expand-project
    2. Select Favorite Packages, then choose Add Package… from the context menu:

      Image depicting step1b-add-package
    3. Enter SAPBC in the search field, then choose the package SAPBC_DATAMODEL from the matching items box:

      Image depicting step1c-choose-package

    The package is added to your favorites:

    ![Image depicting step1d-fave-package-added](step1d-fave-package-added.png)
    Log in to complete tutorial
  • Step 2

    Expand the package SAPBC_DATAMODEL again by choosing the arrow, then expanding the Dictionary folder:

    Image depicting step2-main-ddic-objects

    You will see a long list of folders of Dictionary objects in alphabetical order. For the moment, you will focus on just 3:

    • Database tables: Each database table on the ABAP server represents a table in your database. Tables are defined independently of the database in the ABAP Data Dictionary. When you activate the table in the Dictionary, the table is created in the underlying database. There is no need for any code to define the data in the database, nor for any vendor-specific code. Your database tables will be created in any database supported by the ABAP server.
    • Data element: A data element describes the semantic attributes of a field or column in a complex type – for example a currency, or a customer name. (A complex type can be a database table, table type, or structure.) You can define properties such as search help and (translatable) column header, and then use the same data element in many contexts.
      You can describe the technical attributes of the field either directly in the data element, or in a domain (see below.)
    • Domain: can describes the technical attributes of a data element – such as data type, e.g NUMC. Several data elements can then use the same domain with different semantics, e.g field labels.

    You will now explore how these concepts fit together.

    Log in to complete tutorial
  • Step 3

    Important: Database tables represented on the ABAP server are known as “transparent tables” - to distinguish them from internal tables (which you will learn about later in this tutorial).

    Open the table SFLIGHT by choosing SAPBC_DATAMODEL -> Dictionary -> Database Tables -> SFLIGHT Flug (German for “Flight”):

    Image depicting step3-open-sflight

    The definition of the table appears, including technical settings and key fields:

    Log in to complete tutorial
  • Step 4

    Now select (right-click) the table SFLIGHT again, then choose Open With Data Preview from the context menu:

    Image depicting step4-open-with-data-preview

    Finally, something that looks like a table!

    Image depicting step4b-sflight-in-data-preview
    Log in to complete tutorial
  • Step 5

    Now go back to the table definition. Find the field CARRID. This field has been defined using a data element, S_CARR_ID. Navigate to the definition of S_CARR_ID by selecting it, then choosing Navigate To (F3) from the context menu:

    Image depicting step5-nav-to-dtel

    The data element opens in another editor:

    Image depicting step5b-dtel-wizard

    You can see that the data element is itself based on a domain (with the same name), with the data type CHAR, and length 3. You can also see the field labels for the data element. You could simply define CARRID as a primitive character type of length 3, but then you cannot reuse either the domain (technical) information, or field labels (semantic information). You will put this into practice in a later tutorial, Creating a database table (coming soon).

    The relationship between these Dictionary objects looks like this:

    Image depicting ddic-objects
    Log in to complete tutorial
  • Step 6

    These are a very powerful feature of ABAP. You will explore them in a later tutorial group, Start Developing ABAP Tables.

    • A table type describes the data type of an internal table in ABAP. You can create an internal table, based on the structure of a database table, and then use this internal table to manipulate the data in your application.
    • A structure is a data type that consists of a single row of one or more components, such as elementary types. This is a powerful concept: You can create a structure representing a single row of a table, and then use it to manipulate table data in your application.

    Internal tables should not be confused with database tables, which describe tables in the database.
    The relationship between them looks like this:

    Image depicting ddic-objects-itab
    Log in to complete tutorial
  • Step 7

    You use search help to help your users select a valid value for an input field from a dropdown list. For example, if the input field is Airline code, you could provide a dropdown list including AA (American Airlines), BA (British Airways) and so on. Alternatively, if the field is Customer ID, the search help will show values that have already been entered in the table Customers.

    This is a very powerful feature, since in many cases, the values have already been provided – you only have to link the input field to the relevant table column. Many data elements have this feature out of the box.

    For more information on how to do this, see the SAP Help Portal.

    And that’s it!

    You should now understand six important ABAP Dictionary objects and the relationship between them.
    Now, You can either:

    What ABAP Dictionary object should you use to represent a single row of a table?

    Log in to complete tutorial
Back to top