Introduction to ABAP


ABAP stands for Advanced Business Application Programming.


What is ABAP?

 ABAP is a SAP's own Proprietary programming language originally used by developers to develop the SAP R/3 platform. It was also intended to be used by SAP customers to enhance SAP applications.The language is fairly easy to learn for programmers but it is not a tool for direct use by non-programmers. Knowledge of Relational Database Design and preferably also of Object-Oriented Concepts is necessary to create ABAP programs.

ABAP was one of the first languages to include the concept of Logical Databases (LDBs), which provides a high level of abstraction from the basic database level(s).

ABAP Developer is  called as ABAP Consultant /ABAPer.


Features of ABAP


  • Designed Based on 'C' language.
  • Simple programming Comapared to other Programming Languages.
  • Case InSensitive Language.
  • Platform independent Language.
  • Database independent language.
  • Event Driven Programming language.
  • works based on R/3 Architecture.
  • Designed based on Object Oriented Programming concept.
  • Rich in Data types.
  • Developed truly for Business.

Role of An ABAPer

  • Preparing Technical Specification from Functional Spec given by Functional Consultant.
  • Preparing Documentation from Scratch(Development).
  • Modifying Existing objects(Enhancements).

Tcode/Transaction Code in ABAP


A Transaction in SAP terminology is the execution of a program. The normal way of executing ABAP code in the SAP system is by entering a transaction code.
Ex: SE11 is the transaction code for "Data Dictionary".










Transactions can be called via system-defined or user-specific, role-based menus. They can also be started by entering the transaction code directly into a command field, which is present in every SAP screen. 

Transactions can also be invoked programmatically by means of the ABAP statements CALL TRANSACTION and LEAVE TO TRANSACTION.



ABAP Workbench

There are several tools in ABAP workbench.

SE11 - Data Dictionary.
SE24 - Class Builder.
SE37 - Function Builder.
SE38 - ABAP editor.
SE41 - Menu painter.
SE51 - Screen painter.
SE80 - Object Navigator.
SE91 - Message Class.
SE93 - Maintain Transaction.

Types of ABAP programs


An ABAP program is either an executable unit or a library(non executable), which provides reusable code to other programs and is not independently executable.

Executable Programs

ABAP distinguishes two types of executable programs.

•        Reports
•        Module pools

          Reports are 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 reason why these programs are called reports is the "list-oriented" nature of the output they produce.

          Module pools define more complex patterns of user interaction using a collection of screens. The term “screen” refers to the actual, physical image that the user sees. Each screen also has a "flow logic", which refers to the ABAP code implicitly invoked by the screens. Each screen has its own flow logic.
Flow logic is divided into  "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.

Non- Executable Programs

The non-executable program types are

•        INCLUDE modules
•        Subroutine pools
•        Function groups
•        Object classes
•        Interfaces
•        Type pools

An INCLUDE module gets included at generation time into the calling unit; it is often used to subdivide very large programs. 

Subroutine pools contain ABAP subroutines (blocks of code enclosed by FORM/ENDFORM statements and invoked with PERFORM). 

Function groups are libraries of self-contained function modules.

Object classes and Interfaces are similar to Java classes and interfaces; the first define a set of methods and attributes, the second contain "empty" method definitions, for which any class implementing the interface must provide explicit code. 

Type pools define collections of data types and constants.




No comments: