Top 50 Sap Abap Dictionary Interview Questions You Must Prepare 03.Feb.2023

In a data management system, the principal functions performed by the data dictionary are:

  • Management of data definitions
  • Provision of information for evaluation
  • Support for software development
  • Support form documentation
  • Ensuring that the data definitions are flexible and up-to-date.

In standard SAP tables one can find there are a number of fields. Sometimes it happens or there is a requirement of viewing only a fewer no of fields of a table, in such cases a projection view can be created. Projection views are created only on a single table.

For example, if Table T1 has fields F1,F2,F3,F4,F5, F6, F7, F8, F9, F10, etc…

Say there is a need to view data only for say Fields F1, F2, F4,F8 & F9, in such cases projection view can be created.

  • Append Structures and
  • Customizing Includes.

  • By specifying fixed values.
  • By stipulating a value table.

Whenever a table is created and defined through ABAP Dictionary, then it is called a transparent table. When the table is activated in ABAP Dictionary, a table automatically gets created in the underlying database with the same name as was defined in ABAP Dictionary. 

So generally we say, transparent tables has one to one relationship with underlying database which means there will be only one physical table on the database for each transparent table created and defined through ABAP Dictionary. 

The names of the table and fields in underlying database will correspond or have the same names as the logical table definition in the ABAP Dictionary.

Transparent tables can be used to store application data which include master data as well as transaction data. Transparent tables are probably the only type of table that you will ever create as a developer.

Domains, Data elements, Tables, Technical settings for tables, Secondary indexes for transparent tables, Structures, Views, Matchcode objects, Matchcode IDs, Lock objects.

  • The delivery class controls the degree to which the SAP or the customer is responsible for table maintenance whether SAP provides the table with or without contents.
  • Determines the table type. - determines how the table behaves when it is first installed, at upgrade, when it is transported, and when a client copy is performed.

If the data in one of the base tables of a matchcode ID changes, the matchcode data has to be updated. The update type stipulates when the matchcode is to be updated and how it is to be done. The update type also specifies which method is to be used for Building matchcodes . You must specify the update type when you define a matchcode ID.

A table cluster combines several logical tables in the ABAP/4 Dictionary. Several logical rows from different cluster tables are brought together in a single physical record. The records from the cluster tables assigned to a cluster are thus stored in a single common table in the database.

  1. Database View (SE11): Database views are implement an inner join, that is, only records of the primary table (selected via the join operation) for which the corresponding records of the secondary tables also exist are fetched. Inconsistencies between primary and secondary table could, therefore, lead to a reduced selection set. In database views, the join conditions can be formulated using equality relationships between any base fields. In the other types of view, they must be taken from existing foreign keys. That is, tables can only be collected in a maintenance or help view if they are linked to one another via foreign keys.
  2.  Help View ( SE54): Help views are used to output additional information when the online help system is called. When the F4 button is pressed for a screen field, a check is first made on whether a matchcode is defined for this field. If this is not the case, the help view is displayed in which the check table of the field is the primary table. Thus, for each table no more than one help view can be created, that is, a table can only be primary table in at most one help view.
  3.  Projection View: Projection views are used to suppress or mask certain fields in a table (projection), thus minimizing the number of interfaces. This means that only the data that is actually required is exchanged when the database is accessed. A projection view can draw upon only one table. Selection conditions cannot be specified for projection views.
  4. Maintenance View ( SE54 ): Maintenance views enable a business-oriented approach to looking at data, while at the same time, making it possible to maintain the data involved. Data from several tables can be summarized in a maintenance view and maintained collectively via this view. That is, the data is entered via the view and then distributed to the underlying tables by the system.

The database view is combining several fields of two or more tables into single table. At least one relationship is required is required to combine tables to build a database view. Plus one can only read data from database view and cannot modify the data in the view directly (if view involves more than one table). Database views implement an Inner Join on the tables. The database view is the only type of view in SAP that is physically created at the database level. 

For example, consider two tables T1, T2.

Fields of table T1 are F1, F2 and F@Fields of table T2 are F1, F5.

By using a Database view one can combine the fields of both tables T1 and T2, provided primary and foreign key relation is maintained between the two tables and thus final view can have fields like F1, F2, F3, F5.

  • Tables
  • Domains
  • Data elements
  • Structures
  • Foreign keys

Yes. Use the path Utilities – > Direct Entry Type

The basic objects of the ABAP Dictionary are tables, data elements and domains. Objects that can be created in the ABAP Dictionary or via SE11 transaction are:

  • Tables
  • Data Elements
  • Structures
  • Table Types
  • Type Groups
  • Domains
  • Views
  • Search Helps
  • Lock Objects

The data class signifies a physical area in an underlying database where the table is logically stored. Also it throws light on what kind of data will be stored in the table. Data class helps us to categorize the table on the basis of type of data stored.

There are three important data classes

  • APPL0 - Master data - Master data is data which is frequently read, but rarely updated.
  • APPL1 - Transaction data - Transaction data is data which is frequently updated.
  • APPL2 - Organizational and customizing data - Organizational und customizing data is data which is defined when the system is initialized and then rarely changed.

A view is like a telescope which just provides a picture of something. You can construct a view with special lenses or filters to allow you to look at one or more dictionary tables. You can look at parts of one table (selected records and/or fields) or combinations of tables and parts of tables. A view is an ABAP Dictionary object. In simple words, a View simply mirrors an entire database table. A view would just look like a table and act just like a table – but it isn't actually a table.

A view does not contain data of its own - rather, the view provides specialized access to the data that exists in other tables. For this reason, views are often called virtual tables. Views are used to look into one or more tables. A view does not contain data of its own.

Views combines more than one table. The structure of the view is defined in the ABAP Dictionary. With the help of views, application-dependent view can be defined that combines the data.

Data about an application object (like Purchase order, Sales Order, Invoice Verification, etc.) is often distributed on several database tables. By defining a view, one can define an application-dependent view that combines this data. The structure of such a view is defined by specifying the tables and fields used in the view. Fields that are not required can be hidden, thereby minimizing interfaces. A view can be used in ABAP programs for data selection.

The Size category describes the probable space requirement of the table in the database.

A data dictionary is a centralized storage location for information about the data that is stored in a database. It is basically an interface which helps us to understand like what kind of data is stored in database, what are the properties and attributes of the data and the relation between different data objects available in database.

SAP’s data dictionary is called the ABAP Dictionary. ABAP Dictionary is accessed via transaction code SE11.

ABAP dictionary is a central data management system. Its main function is to support the creation and management of data definitions.

The values specified for the size category and data class are mapped to database-specific values via control tables.

You can specify the extent sizes and the tablespace (physical storage area in the database) in which a transparent table is to be stored by setting the size category and data class.

Help views can be used as selection methods for Search Helps. It might be necessary to create a Help View if you are trying to accomplish an outer join, since database views only create inner joins.

By specifying technical settings we can control how database tables are created in the database. The technical settings allows us to - optimize storage space requirements

  • table access behaviour
  • buffering required
  • changes to entries logged

Tables in Data dictionary which has many to one relationship with an underlying database table is called Pooled table. In simple words, Pooled tables appear as many tables in ABAP dictionary, but the thing is they are stored as a single table in the underlying database.

In ABAP Dictionary, you can see each and every pooled table is assigned to a Table Pool.

As it is understood that for many pooled tables in ABAP dictionary, there is a single table called as Table Pool in an underlying database. A Table Pool is an underlying database table with a special structure that enables the data of many ABAP Dictionary tables to be stored within it.

Tables M_MTVMA, M_MTVMB, M_MTVMC, M_MTVMD and M_MTVME can be seen in ABAP Dictionary. These all mentioned tables are Pooled Tables. All these tables have been assigned to one Table Pool i.e. M_MTVM, which will be present in the underlying database and storing data of all the five mentioned tables of ABAP Dictionary.

Pooled tables are basically used by SAP to store temporary data or customizing data. Pooled tables can also be used to store control data (such as screen sequences or program parameters).

Generally as a developer, we will never create a Pooled table or Table Pool. It does not mean that we cannot create them. SAP has given the option to create Pooled tables through SE80 transaction and Table pool via ABAP Dictionary.

The function of the transport system and the Workbench Organizer is to manage any changes made to objects of the ABAP/4 Development Workbench and to transport these changes between different SAP systems.

A cluster table is similar to a Pooled table. It has a many to one relationship with a table in an underlying database. Many cluster tables are stored in a single table in an underlying database called a table cluster.

So table cluster is similar to pooled table pool. A table cluster holds only cluster table within it.

Table clusters store data from several cluster tables based on the primary key fields that they have in common. 

Rows from the cluster tables are combined into a single row in the table cluster. The rows are combined based on the part of the primary key they have in common.

The biggest advantage of cluster table and pooled table is they reduce the number of database reads and thereby improve performance.

Tables CDPOS and CDHDR are Cluster tables in SAP ABAP Dictionary and CDCLS is the table cluster that exist in the underlying database. CDCLS table contains or hold data of both tables CDPOS and CDHDR in the underlying database.

Yes, the numbers 0 to 9 are reserved for us to create our own Match Code IDs for a SAP defined Matchcode object.

A table pool (or pool) is used to combine several logical tables in the ABAP/4 Dictionary. The definition of a pool consists of at least two key fields and a long argument field (VARDATA).

Possible ABAP/4 data types:

  • C: Character.
  • D: Date, format YYYYMMDD.
  • F: Floating-point number in DOUBLE PRECISION (8 bytes).
  • I: Integer.
  • N: Numerical character string of arbitrary length.
  • P: Amount or counter field (packed; implementation depends on hardware platform).
  • S: Time stamp YYYYMMDDHHMMSS.
  • T: Time of day HHMMSS.
  • V: Character string of variable length, length is given in the first two bytes.
  • X: Hexadecimal (binary) storage.

Data Element: Data Element gives semantic attributes like field labels and online documentation

Domain: Domain gives the technical attributes like data type and field length

In SAP, you have total four types of views. Based on the way in which the view is implemented and the methods that are permitted for accessing the view data they are divided into Database View, Projection View, Maintenance View and Help View. 

Database views implement an Inner Join whereas Projection View, Maintenance View and Help View implement an Outer Join.

There are 4 Different types of Views in SAP. They are:

  • Maintenance View
  • Database View
  • Projection View
  • Help View

The Data class determines in which table space the table is stored when it is created in the database.

There are two types of SQL being used in SAP ABAP programming language. They are

  • Native SQL
  • Open SQL

Open SQL allows to access the database tables declared in the ABAP dictionary regardless of the database platform that the SAP R/3 system is using.

Native SQL allows to use database-specific SQL statements in a SAP ABAP program. This means that one can use database tables that are not administered by ABAP dictionary, and therefore integrate data that is not part of the SAP R/3 system.

Open SQL is not confined to any particular type of database while a Native SQL is confined to a particular type. 

ABAP programs that uses only Open SQL statements will work in any R/3 system, regardless of the database system in use. Open SQL statements can only work with database tables that have been created in the ABAP dictionary.

Non-standard conversions from display format to sap internal format and vice-versa are implemented with so called conversion routines.

Aggregated Objects Views, matchcodes, and lock objects are also called aggregate objects because they are formed from several related tables.

Differences between transparent, pooled and cluster tables are:

  • Transparent tables have a one to one relationship with a physical table in an underlying database where as pooled tables and cluster tables have many to one relationship with a physical table in the underlying database (Relationship between tables in ABAP Dictionary & Underlying database).

    For each transparent table there will be exactly only one table in the underlying database whereas many pooled tables are stored in a single table in an underlying database called table pool. Similarly many cluster tables are stored in a single table in the database called a table cluster
  • In case of transparent tables, the underlying database table will have the same name, same number of fields and the fields will also have the same names as defined in ABAP Dictionary whereas for pooled tables and cluster tables the underlying database table will have different name, different number of fields and fields will have different names from what has been defined in ABAP Dictionary.
  • Transparent tables can have one or more primary key Whereas Primary key of each pooled table of a table pool need not be same whereas Primary key of each cluster table of a table cluster should have at least one key in common.
  • Secondary indexes can be created for transparent tables, but for pooled and cluster tables we cannot create any secondary index.
  • Transparent tables can be accessed via both Native and Open SQL whereas pooled and cluster table can be accessed by Open SQL only.

Transparent tables are used to hold application data which includes both master data as well as transaction data. 

Pooled tables reduce the amount of database resources needed when many small tables have to be opened at the same time.

Cluster tables are used when the tables have primary key in common and data in these tables are all accessed simultaneously.

Data dictionary is a central source of data in a data management system. Its main function is to support the. It has details about

  • What data is contained?
  • What are the attributes of the data?
  • What is the relationship existing between the various data elements?

Match Code is a tool to help us to search for data records in the system. Match codes are an efficient and user-friendly search aid where the key of a record is unknown.

Table:

  • Table has an underlying database table
  • Table has a primary key
  • Table has technical attributes

Structure:

  • No underlying database table
  • No primary key
  • No technical attributes

There are 3 types of tables in SAP Dictionary (DDIC). They are:

  • Transparent Table
  • Pooled Table
  • Cluster Table

These are logical tables which must be assigned to a table pool when they are defined. Pooled tables can be used to store control data (such as screen sequences or program parameters).

ACCP, CHAR, CLNT, CUKY,CURR, DATS, DEC, FLTP, INT1,INT2, INT4, LANG, LCHR,LRAW, NUMC, PREC, QUAN,RAW ,TIMS, UNIT, VARC.

  • Internal Subroutines: The source code of the internal subroutines will be in the same ABAP/4 program as the calling procedure (internal call).
  • External Subroutines: The source code of the external subroutines will be in an ABAP/4 program other than the calling procedure.

  • In the case of a substructure, the reference originates in the table itself, in the forma of a statement include. 
  • In the case of an append structure, the table itself remains unchanged and the reference originates in the append structure.

Just like we have table maintenance (SM30) for each table, similarly if there is a requirement to maintain data for one or more tables in a single view, then maintenance view can be created. All the tables in a maintenance view must be linked with foreign key. The join conditions for maintenance views are always derived from the foreign key automatically and thus one cannot directly enter the join conditions as for database views. Unlike Database views, one can modify data from maintenance view.

Thus, a maintenance view allows you to maintain the data of an application object together. 

When two users simultaneously attempt to access the same data record, this is synchronised by a lock mechanism.

When dialog transactions are programmed, locks are set and released by calling certain function modules. These function modules are generated automatically from the definition of so-called lock objects in the ABAP/4 Dictionary. To synchronize the access to a table by setting and removing locks, a Lock object has to be defined in the ABAP/4 Dictionary. Activating the lock object automatically creates #function modules for setting and removing locks. These function modules must be included when programming interactive transactions.

Lock Mechanism : To set locks, a lock object must be defined in the ABAP/4 Dictionary. In this lock object, those tables in which data records are to be locked by calling a lock are determined. All tables included in a lock object must be connected to each other via foreign keys. The key fields of the tables in a lock object form the Lock arguments for the tables. The lock arguments are the basis for formulating the logical condition for identifying the records to be locked. When activating this lock object, two function modulesB with the namesENQUEUE_ and DEQUEUE_ are generated.

The basic differences between projection view and database view are:

  • Database view can built over many tables whereas projection view can be built over a single table only.
  • Database view can be updated if the view is built over a single table whereas in projection view data can be updated.
  • In case of database view, data updates can use open SQL or native SQL whereas in case of projection view, data updates must use open SQL.
  • Database view can be buffered whereas Projection view cannot be buffered.

There are three operations that can be performed on views in SAP: Join, Projection and Selection.

  • The Projection Operation is used to narrow a view’s focus to certain fields in a table.
  • The Selection Operation is used to narrow a view’s focus to certain records in a table.
  • The Join Operation is used to combine information from multiple tables into a single view.