What is ABAP?

ABAP initially abbreviated as Allgemeiner Berichts-Aufbereitungs-Prozessor, which is a German for "generic report preparation processor". It was later converted to the English and change name as “Advanced Business Application Programming”.

ABAP is fourth-generation languages (4GLs) originally first established in the 1980s. ABAP was initially developed as a report language for SAP R/2 platform that was used by large organizations to develop mainframe business applications for materials handling, financial and accounting.

The ABAP language was used by developers to develop the SAP R/3 platform. It was also planned to be used by SAP customers to enhance SAP applications. The language was promoted towards more technical customers with programming experience.

SAP's current development platform NetWeaver supports both ABAP and Java. ABAP was one of the first languages to contain the concept of Logical Databases (LDBs), which supports every platform, language, and units.

Why ABAP?

  • ABAP supports both procedural and Object-oriented programming.
  • ABAP aimed to use by SAP customers to enhance SAP applications.
  • ABAP allows us to develop custom reports and interfaces with ABAP programming.
  • ABAP supports portability and can easily ported from one platform to another.
  • ABAP is easy for the people who are coming from programming background.
  • ABAP was one of the first languages to include the concept of Logical Databases (LDBs), which supports every platform, language, and units.
  • ABAP used by developers to develop the SAP R/3 platform.

Specify the ABAP version history?

  • ABAP is one of the 4GLs (fourth-generation languages) first developed in the 1980s.
  • ABAP becomes as the language for developing programs for the client–server R/3 system, which SAP was first released in the year 1992.
  • In 1999, SAP released an object-oriented extension known as ABAP Objects along with R/3 release 4.6.
  • In 2001, all but the most basic functions were written in ABAP.
  • In 2006, 7.0 version released that offer switch framework feature.
  • In 2012, 7.4 version released with Table expressions feature.
  • In 2015, 7.5 version released that start supporting Open SQL expressions.
  • In 2017, 7.52 version released with virtual sorting of the internal table feature.
  • In 2019, 7.54 (current) version released with many revisions of existing features.

What is ABAP Runtime Environment?

The runtime system is a part of SAP kernel controls the ABAP programs execution. The runtime system is responsible for processing ABAP statements, controlling the screens flow logic and responding to events (For example - a user clicking on a button existed on the screen).

A key component of the ABAP runtime system is the Database Interface, that converts database-independent ABAP statements ("Open SQL") into statements understood by the underlying DBMS ("Native SQL"). The database interface manages all the communication with the relational database on behalf of ABAP programs. Database interface also contains features such as buffering of tables and frequently accessed data in the local memory of the application server.

How ABAP program stored?

All ABAP programs exists inside the SAP database and they are not stored as a separate external file like Java or C++ programs.

In the database, each ABAP program code stores in two forms - Source code and Generated code.

Source code can view and edited with the ABAP Workbench tools. Generated code is a binary representation that is slightly similar with Java bytecode.

What are the types of ABAP programs-based execution?

An ABAP program is either an executable unit or a collection, that offers reusable code to other programs. ABAP programs are basically two types -

  • Executable programs – These are independently executable.
  • Non executable programs – These are not independently executable.

Executable programs –

ABAP divides executable programs are two types. Those are -

  • Reports
  • Module pools

Reports follows a simple programming model where a user enters a set of input parameters optionally and the program uses those input parameters to produce a report in the form of an interactive list. Due to the "list-oriented" nature of the program output, these programs called as “reports”.

Module pools explains challenging ways of user interaction using a collection of screens. The term “screen” specifies the actual, physical image that the user can see. Each screen has a "flow logic", that calls to the ABAP code indirectly. This flow logic is divided into two sections – one is "PBO" (Process Before Output) and another is "PAI" (Process After Input). The combination of the screen and its flow logic is called as “dynpro” (dynamic program).

Non-executable programs –

The non-executable program types are divided as below -

  • INCLUDE modules – Includes into calling unit during the generation time and mostly used to split the larger programs.
  • Subroutine pools - Contain ABAP subroutines that are coded in between FORM/ENDFORM and invoked with PERFORM.
  • Function groups - Are libraries of function modules that are coded in between FUNCTION/ENDFUNCTION and invoked by CALL FUNCTION).
  • Object classes – Defines set of methods and attributes.
  • Interfaces – Contains “empty” method definitions to manually provide the code by developer.
  • Type pools - Defines set of data types and constants.

How to create development environment for ABAP?

The ABAP development can be done in two possible days. Those are –

  • ABAP Workbench
  • ABAP Development Tools

The ABAP Workbench is part of the ABAP system and accessed via SAP GUI. It contains various tools for editing programs. Some of the ABAP workbench tools are -

  • ABAP Editor used for writing and editing reports, module pools, includes and subroutine pools. Transaction code is SE38.
  • ABAP Dictionary used for processing database table definitions and retrieving global types. Transaction code is SE11.
  • Menu Painter used for designing the user interface like menu bar, standard toolbar, application toolbar, function key assignment. Transaction code is SE41.
  • Screen Painter used for designing screens and flow logic. Transaction code is SE51.
  • Function Builder used for function modules. Transaction code is SE37.
  • Class Builder used for ABAP Objects classes and interfaces. Transaction code is SE24.

The Object Navigator provides a single integrated interface into these various tools. Transaction code is SE80.

The ABAP Development Tools (ADT) also known as "ABAP in Eclipse" with a set of plugins to develop ABAP.