Need of Modularization
Need of Modularization
Need of Modularization
Use of Macros
Use of include files
Subroutines
Function Modules
You can only use a macro within the program in which it is defined, and it can only
be called in lines of the program following its definition.
Syntax
DEFINE <macro_name>
'Macro Statements
END-OF-DEFINITION
Macros can use Parameters &N where N = 1,2,3...
Example:-
DEFINE increment.
ADD 1 to &1.
WRITE &1.
END-OF-DEFINITION.
Increment number1.
WRITE number1.
Output: 2
Include Programs
Include Programs are solely for modularizing source code, and have no parameter
interface. Include programs allow you to use the same source code in different
programs. They can be useful if you have lengthy data declarations that you want to
use in different programs.
Syntax
Example:
INCLUDE ZILX0004.
================================
PROGRAM ZRPM0001.
INCLUDE ZILX0004.
Subroutines
Subroutines are procedures that you can define in any ABAP program and also call
from any program. Subroutines are normally called internally, that is, they contain
sections of code or algorithms that are used frequently locally. If you want a function
to be reusable throughout the system, use a function module.
Syntax-
FORM <Subroutine> [<pass>].
<Statement block>.
ENDFORM.
<Subroutine> = Name of the subroutine
Types of Subroutines
1. Internal
o Subroutine defined in same program being called.
o Can access all the data objects declared in the main ABAP/4 program.
2. External
o Subroutine defined outside the program being called.
o Need to use the <pass> option or declare data objects in common
parts of memory.
External Subroutines
Nested calls are allowed in subroutines (i.e. PERFORM within a FORM ...
ENDFORM ).
Recursive calls are also possible.
To define local data, use the DATA statement after FORM . Each time you
enter the subroutine, the data is recreated (with an initial value) and released
at the end (from the stack).
To define global data used within a subroutine, use the LOCAL statement
after FORM . The values are saved when you enter the subroutine and then
released at the end (from the stack)
Function Modules
Function Modules are general purpose ABAP/4 routines that anyone can use. Infact
, there are a large number of standard function Modules available.
Syntax-
<Statements>
ENDFUNCTION.
Important information Associated with Function Module
Administration
Import/Changing/Export parameters.
Table Parameters/Exceptions.
Documentation
Source code - L<fgrp>U01 . <fgrp> is the Function Group
Global Data - L<fgrp>TOP .Global data for the function group- Accessible
across function modules in the function group.
Main Program - SAPL<fgrp> . Contains the list of all the include files for that
function group
[EXPORTING f1 = a 1.... f n = a n]
[IMPORTING f1 = a 1.... f n = a n]
[CHANGING f1 = a 1.... f n = a n]
[TABLES f1 = a 1.... f n = a n]
[EXCEPTIONS e1 = r 1.... e n = r n [ERROR_MESSAGE = r E]
[OTHERS = ro]].
Function Groups
Function groups are containers for function modules. Infact, there are a large
number of standard Function Groups. All of the function modules in a function group
can access the global data of the group.
Like executable programs (type 1) and module pools (type M), function groups can
contain screens, selection screens, and lists.
Points to Note