The ABAP Dictionary

The ABAP Dictionary (DDIC, transaction SE11) centrally defines database tables, views, and global types.

The ABAP Dictionary (DDIC, transaction SE11) centrally defines database tables, views, and global types. Every ABAP program can reference these definitions, and ABAP SQL is checked against them.

6.1 The two-level domain concept

Data type (CHAR, NUMC, DEC, CURR, QUAN, DATS, TIMS, INT4, STRING…), length, decimals, output length, conversion routine, value range ZD_STATUS: CHAR 1, fixed values O/C/X Data element

Semantics: short/medium/long/heading labels, documentation; refers to a domain or built-in type

Flat or nested group of fields; no database table Transparent table 1:1 database table Table type Global internal table type

Domain (technical: type + length + fixed values / value table)
   ▲
Data element (semantic: field labels, documentation, F1 help, search help)
   ▲
Table field / structure component

6.2 Creating a transparent table

SE11 → Database table → ZORDERS:

Important settings:

Delivery class: A (application data), C (customizing), L (temporary), S/E/W (system).

Data browser/table view maintenance: allow SE16 display and SM30 maintenance.

Technical settings: data class (APPL0 master data, APPL1 transactional), size category, buffering (none / single record / generic / full).

Currency/quantity reference fields: CURR fields must reference a CUKY field, QUAN fields a UNIT field.

Foreign keys & check tables: enforce input checks on screens and provide value help.

Indexes: primary index on key; secondary indexes for frequent selections (be careful on HANA — usually not needed).

Enhancement category: required; defines whether the table can be appended.

In ADT (7.52+), tables are defined in source form:

@EndUserText.label : 'Sales orders'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #RESTRICTED
define table zorders {
  key client     : abap.clnt not null;
  key order_id   : abap.numc(10) not null;
  customer       : abap.char(10);
  order_date     : abap.dats;
  @Semantics.amount.currencyCode : 'zorders.currency'
  amount         : abap.curr(15,2);
  currency       : abap.cuky;
  status         : abap.char(1);
}

6.3 Views

Database view (SE11) Inner join of tables, defined in DDIC (classic) Subset of fields of one table

For SM30 table maintenance across related tables Used in search helps (outer join) CDS view / CDS view entity

Modern, source-based, rich SQL features and annotations — the strategic choice (§33). Classic DDIC-based CDS views (DEFINE VIEW) are obsolete since 7.57; use DEFINE VIEW ENTITY.

6.4 Search helps

Elementary search help: selection method (table/view), interface parameters (import/export), dialog type. Collective search help: groups several elementary ones in tabs. Attach to a data element, table field, check table, or screen field. Usage in a report:

PARAMETERS p_carr TYPE s_carr_id MATCHCODE OBJECT h_scarr.  " explicit search help

6.5 Lock objects

A lock object (SE11, name starts with EZ/EY) generates two function modules: ENQUEUE_<name> and DEQUEUE_<name>. Lock modes: E (exclusive, cumulative), X (exclusive, not cumulative), S (shared), O (optimistic). Usage in §16.

6.6 Appends and includes

Append structure: adds customer fields (ZZ…/YY…) to SAP tables without modification.

Customizing include (CI_…): SAP-provided hook for customer fields.

Include structure: reuse a structure inside tables (.INCLUDE).

6.7 Other DDIC objects

Type groups (obsolete), table maintenance generator (SE54 / SM30), number range objects (SNRO, used with function NUMBER_GET_NEXT), conversion exits (CONVERSION_EXIT_ALPHA_INPUT/OUTPUT add/remove leading zeros), and database utility SE14 (adjust/activate tables after structure changes).