1. Functional Module: Procedure that can only be defined in function groups and outside of
classes. This can be called from all programs. Begins with FUNCTION and ends with
ENDFUNCTION. It is maintained using the Function Builder of the ABAP Workbench.
Functional Module can be checked using T Code SE37 for a package, say in standard SAP CS15
will be used for checking the where used list for a material and here it can be checked only for
one material, in case if we want to check for a list of materials a small report can be developed
using the functional modules like…
CSEP_MAT_BOM_SELECT_WHERE_USED API Bills of Material: Select BOM(s) (or)
CS_WHERE_USED_MAT Bills of material; where-used list
User Exit: A point in an SAP program where a customer's own program can be called.
In contrast to customer exits, user exits allow developers to access and modify program
components and data objects in the standard SAP System. On upgrade, each user exit must be
checked to ensure that it conforms to the standard system.
There are the following types of user exit:
User exits that use INCLUDEs - These are customer enhancements that are called
directly in the program.
User exits that use tables - these are used and managed using Customizing.
User Exits can be viewed or checked using the T Code SMOD and using CMOD a user exit will
be activated.
BAdI: A template for BADI objects.
Business Add-Ins (BADIs) are the basis for enhancements where BADI methods in object plug-
ins can be called from ABAP programs. The calling program controls which BADI
implementations are used by specifying filter values. A BADI consists of a BADI interface, a set
of filters and some settings.
From Release 7.0, BADIs are edited in the Enhancement Builder and reside in the global class
namespace. You can switch on their implementations via the Switch Framework.
There are also classic BADIs, which are edited in the BADI -Builder and superseded function
module exits in Release 4.6. Related T Code SE18.
BAPI: A Business Application Programming Interface (BAPI) is a precisely defined interface
providing access to processes and data in business application systems such as R/3. SAP
business objects are accessed through BAPIs (Business Application Programming Interfaces),
which are stable, standardized methods. SAP business objects and their BAPIs provide an object-
oriented view of R/3 business functions.
2. SAP provided the first BAPIs for customers and external providers in Release 3.1, enabling them
to integrate their software components in the R/3 System and the Business Framework. The
number of BAPIs is increasing with each R/3 Release and with this the extent of object-oriented
access to the R/3 System.
As of Release 4.5, A BAPIs can also describe interfaces, implemented outside the R/3 System
that can be called in external systems by R/3 Systems. These BAPIs are known as BAPIs used
for outbound processing. The target system is determined for the BAPI call in the distribution
model of Application Link Enabling (ALE).
BAPIs used for outbound processing are defined in the Business Object Repository (BOR) as
API methods of SAP Interface Types. Functions implemented outside the R/3 System can be
standardized and made available as BAPIs.
BAPIs can be called within the R/3 System from external application systems and other
programs. BAPIs are the communication standard for business applications.
BAPI interface technology forms the basis for the following developments:
Connecting: New R/3 components, for example, Advanced Planner and Optimizer (APO)
and Business Information Warehouse (BW).
Non-SAP software
Legacy systems
Isolating components within the R/3 System in the context of Business Framework
Distributed R/3 scenarios with asynchronous connections using Application Link
Enabling (ALE)
Connecting R/3 Systems to the Internet using Internet Application Components (IACs)
PC programs as frontends to the R/3 System, for example, Visual Basic (Microsoft) or
Visual Age for Java (IBM).
Workflow applications that extend beyond system boundaries
Customers' and partners' own developments
Required Knowledge
To use BAPIs to access SAP business objects you will need a good understanding of object-
oriented programming. You should also have a basic knowledge of the R/3 System.
BAPIs can be accessed from various programming environments, for example, Delphi/Connect
from Inprise (formerly Borland), Microsoft’s Visual Studio, C++ and Java platforms. You must
be familiar with the development environment used to access BAPIs.
BAPIs are available from development platforms external to R/3 that supports the Remote
Function Call (RFC) protocol. If you are developing your application in a non-object oriented
programming language, you need to have RFC programming skills to call BAPIs via RFC. In
particular, you need to know how to perform RFC calls.