Preface – This post is part of the Object Oriented ABAP series.
Table of Contents
One of the flavors of ABAP classes (Global Classes) we have already discussed in the last article. Another flavor of ABAP class are Local Classes. The only difference between a local class & global class is visibility & accessibility. A local class can be accessed within that program only in which it is being defined & implemented, whereas a global class can be accessed in any other program.
NOTE: In some of the previous articles, where different types of classes have been described, there the sample programs were the examples of local class only.
A class which is defined and implemented in a program is known as Local Class. Local classes in SAP ABAP can be created through Transaction code SE-38(tool to create a report).
Let’s take an example of this class ‘ZCL_MARA’. This class is having one method ‘GET_MATERIAL_TYPE’ to get the material type of a given material.
NOTE: ‘MARA’ is a table in SAP ABAP for general material data. So, in this sample program, material (iv_matnr – importing parameter of a method) is given by the user, and this method will fetch the material type ( like finished, semi-finished, raw, etc. )
TYPES: BEGIN OF ty_mara, “USER-DEFINED TYPES
Matnr TYPE mara-matnr,
Mtart TYPE mara-mtart,
END OF ty_mara.
CLASS zcl_mara DEFINITION.
IMPORTING iv_matnr TYPE mara-matnr
EXPORTING ls_mara type ty_mara.
ENDCLASS. “CLASS DEFINITION
CLASS zcl_mara IMPLEMENTATION.
SELECT SINGLE matnr, mtart FROM mara INTO ls_mara
WHERE matnr = iv_matnr
ENDCLASS. “CLASS IMPLEMENTATION
- To restrict the usage of any functionality, we can use it in a local class of any program.
- A Local class is very useful while creating an ABAP Unit Test Class, as a local test class has been generated within a global class.
- These classes are useful for the enhancements of class methods.