ABAP programs

Different Types of ABAP Programs

Different Types of ABAP programs : ABAP, there are 7 different types of ABAP programs which includes executable, function module, module pool, subroutine, class, interface,

Types of ABAP Programs

Report programs

Report programs follow a relatively simple programming model whereby a user optionally enters a set of parameters (e.g. a selection over a subset of data) and the program then uses the input parameters to produce a report in the form of an interactive list.

The output from the report program is interactive because it is not a passive display; instead it enables the user, through ABAP language constructs, to obtain a more detailed view on specific data records via drill-down functions, or to invoke further processing through menu commands, for instance to sort the data in a different way or to filter the data according to selection criteria.

This method of presenting reports has great advantages for users who must deal with large quantities of information and must also have the ability to examine this information in highly flexible ways, without being constrained by the rigid formatting or unmanageable size of “listing-like” reports. The ease with which such interactive reports can be developed is one of the most striking features of the ABAP language.

The term “report” is somewhat misleading in the sense that it is also possible to create report programs that modify the data in the underlying database instead of simply reading it.

A customized screen created using Screen Painter,which is one of the tools available in ABAP workbench.

Online programs
Online programs (also called module pools) do not produce lists. These programs define more complex patterns of user interaction using a collection of screens. The term “screen” refers to the actual, physical image that the users sees. Each screen also has a “flow logic”; this refers to the ABAP code invoked by the screens, i.e. the logic that initializes screens, responds to a user’s requests and controls the sequence between the screens of a module pool.

Each screen has its own Flow Logic, which is divided into a “PBO” (Process Before Output) and “PAI” (Process After Input) section. In SAP documentation the term “dynpro” (dynamic program) refers to the combination of the screen and its Flow Logic.


Online programs are not invoked directly by their name, but are associated with a transaction code. Users can then invoke them through customizable, role-dependent, transaction menus.

Apart from reports and online programs, it is also possible to develop sharable code units such as class libraries, function libraries and subroutine pools.

Also See: SAP R/3 ABAP E-Books

Subroutine pools

Subroutine pools, as the name implies, were created to contain collections of subroutines that can be called externally from other programs. Before release 6.10, this was the only way subroutine pools could be used. But besides subroutines, subroutine pools can also contain local classes and interfaces. As of release 6.10, you can connect transaction codes to methods.

Therefore, you can now also call subroutine pools via transaction codes. This is the closest to a Java program you can get in ABAP: a subroutine pool with a class containing a method – say – main connected to a transaction code!

Function pools

Function pools, more commonly known as “function groups”, are libraries of functions developed in ABAP. Functions differ from subroutines in that they are self-contained and do not belong to a specific program. ABAP functions accept as input any number of input parameters, return as output any number of output parameters, and raise exceptions if an error condition occurs.

Functions are invoked in ABAP programs by means of the CALL FUNCTION statement. A very important feature of ABAP is the ability to call function modules in another SAP system or in an external application using the RFC (Remote Function Call) mechanism. It is also possible to call functions asynchronously; the ABAP program then does not wait for the function to return but instead continues immediately, while the function executes in a separate context.

ABAP-CodeType pools

Type pools are the precursors to general type definitions in the ABAP Dictionary. Before release 4.0, only elementary data types and flat structures could be defined in the ABAP Dictionary. All other types that should’ve been generally available had to be defined with TYPES in type pools. As of release 4.0, type pools were only necessary for constants. As of release 6.40, constants can be declared in the public sections of global classes and type pools can be replaced by global classes.

Class pools

Class pools serve as containers for exactly one global class. Besides the global class, they can contain global types and local classes/interfaces to be used in the global class. A class pool is loaded into memory by using one of its components. For example, a public method can be called from any ABAP program or via a transaction code connected to the method. You maintain class pools in the class builder.

Interface pools

Interface pools serve as containers for exactly one global interface—nothing more and nothing less. You use an interface pool by implementing its interface in classes and by creating reference variables with the type of its interface. You maintain interface pools in the class builder.

Also See: ABAP Modularization Overview

Online Training Tutorials

  • ABAP ModularizationABAP Modularization an Overview What is ABAP Modularization and its benefits? If the program contains the same or similar blocks of statements or it is required to process the same function several times, we can avoid […]
  • SAP ABAP Interview Questions and AnswersTop 30 SAP ABAP Interview Questions and Answers – TechnosapABAP is a hybrid programming language that supports both a procedural and an object-oriented programming model.  We have listed SAP ABAP Interview Questions and Answers that have been […]
  • SAP ABAP TutorialSAP ABAP Tutorial – Learn SAP ABAP ProgrammingSAP ABAP Tutorial - To learn how to do programming and some of the basic tutorials and coding in SAP ABAP module step by step. SAP ABAP (Advanced Business Application Programming) is […]
  • SAP R3 ArchitectureWhat is R/3 Architecture?SAP R3 Architecture: To start entering into project implementation activities every one of the project related, should at least know the R/3 architecture. It gives an immense knowledge […]
  • Screen Exit for SAP Standard TransactionHow to Implement Screen Exit for SAP Standard TransactionScreen Exit for SAP Standard Transaction: SAP provides standard transactions to enter data into database. But a client may want to maintain some additional information in SAP other than […]
  • SAP Adobe FormsHow to use Multiple Master and Body Pages in the SAP Adobe FormsSAP Adobe Forms: SAP Interactive Forms by Adobe is included in SAP Web Application Server and can be used by any applications that are based on SAP NetWeaver ’04 or later. The following […]
  • ABAP Package ConceptABAP Package Concept an OverviewABAP Package Concept, ABAP applications server’s one of the most important innovations is ABAP package concept, owing to the reason that it allows the development of software considered to […]
  • SAP Support PackageThe Steps to Upgrade SAP Support PackageHope sometimes we need to update our SAP Support Package for bug fixing or regular maintenance. If we  check our current SAP Support Package Level from transaction SPAM --> Package […]