0% found this document useful (0 votes)
175 views

08.local Classes With Methods

1. The document discusses three types of local classes in SAP ABAP: classes with methods, classes with tables, and classes with user-defined types. 2. Local classes allow defining methods, tables, and types within a program for custom functionality. Methods and types are defined in the class and implemented locally. 3. Examples show how to define a local class, add a method retrieving material data, implement the method, and call the method within a program to use local class functionality.

Uploaded by

Shashank Yerra
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
175 views

08.local Classes With Methods

1. The document discusses three types of local classes in SAP ABAP: classes with methods, classes with tables, and classes with user-defined types. 2. Local classes allow defining methods, tables, and types within a program for custom functionality. Methods and types are defined in the class and implemented locally. 3. Examples show how to define a local class, add a method retrieving material data, implement the method, and call the method within a program to use local class functionality.

Uploaded by

Shashank Yerra
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

# Content

1 Local class with methods in SAP ABAP

2 Local class with tables in SAP ABAP

3 Local class with user-defined types in SAP ABAP

Local class with methods in SAP


ABAP
Last Updated: November 11th 2013 by Ashok Kumar Reddy

Local class with methods in SAP ABAP, defining methods in local classes, implementing
methods in SAP local classes
+ -
Local class is a class definition and implementation is available in a program.
Go to SE38, create a program ZSAPN_CLASS_METHODS1 and follow steps to add code

Define a class

CLASS CL_METHODS_EXAMPLE DEFINITION. "DOUBLE CLICK ON CLASS NAME TO CREATE

IMPLEMENTATION
PUBLIC SECTION.
METHODS : GET_MATERAIAL_DETAILS
IMPORTING IM_MATNR TYPE MATNR
EXPORTING EX_MARA TYPE MARA.
CLASS-METHODS : GET_MATERIAL_DESCRIPTION
IMPORTING IM_MATNR TYPE MATNR
EXPORTING EX_MARA TYPE MARA.
ENDCLASS.

Implement class

CLASS CL_METHODS_EXAMPLE IMPLEMENTATION.


METHOD GET_MATERIAL_DETAILS.
SELECT SINGLE * FROM MARA
INTO EX_MARA
WHERE MATNR = IM_MATNR.
ENDMETHOD.

METHOD GET_MATERIAL_DESCRIPTION.
SELECT * FROM MAKT
INTO EX_MAKT
WHERE MATNR = IM_MATNR.
ENDSELECT.
ENDMETHOD.
ENDCLASS.

Using class

DATA : WA_MARA TYPE MARA.


DATA : WA_MAKT TYPE MAKT.
PARAMETERS : P_MATNR TYPE MARA-MATNR.
DATA : LO_MATERIAL TYPE REF TO CL_METHODS_EXAMPLE. "DECLARE CLASS
CREATE OBJECT LO_MATERIAL. "CREATE OBJECT

CALL METHOD LO_MATERIAL->GET_MATERIAL_DETAILS


EXPORTING
IM_MATNR = P_MATNR
IMPORTING
EX_MARA = WA_MARA .
CALL METHOD LO_MATERIAL->GET_MATERIAL_DESCRIPTION
EXPORTING
IM_MATNR = P_MATNR
IMPORTING
EX_MAKT = WA_MAKT .

*PRINT OUTPUT
WRITE:/ WA_MARA-MATNR, WA_MARA-MTART, WA_MARA-MEINS, WA_MARA-MAKTL.
WRITE:/ WA_MAKT-MATNR, WA_MAKT-MAKTX.

DEFINITION DEFERED is a kwyword which indicates the class definition is delayed or postponed or
definition at some place in program.

Final code will be

REPORT ZSAPN_LOCAL_CLASS_METHODS.
CLASS CL_METHODS_EXAMPLE DEFINITION DEFERRED.
DATA : WA_MARA TYPE MARA.
DATA : WA_MAKT TYPE MAKT.
PARAMETERS : P_MATNR TYPE MARA-MATNR.
DATA : LO_MATERIAL TYPE REF TO CL_METHODS_EXAMPLE. "DECLARE CLASS

CLASS CL_METHODS_EXAMPLE DEFINITION. "DOUBLE CLICK ON CLASS NAME TO CREATE


IMPLEMENTATION
PUBLIC SECTION.
METHODS : GET_MATERIAL_DETAILS
IMPORTING IM_MATNR TYPE MATNR
EXPORTING EX_MARA TYPE MARA.
CLASS-METHODS : GET_MATERIAL_DESCRIPTION
IMPORTING IM_MATNR TYPE MATNR
EXPORTING EX_MAKT TYPE MAKT.
ENDCLASS.
CREATE OBJECT LO_MATERIAL. "CREATE OBJECT

CALL METHOD LO_MATERIAL->GET_MATERIAL_DETAILS


EXPORTING
IM_MATNR = P_MATNR
IMPORTING
EX_MARA = WA_MARA.

CALL METHOD CL_METHODS_EXAMPLE=>GET_MATERIAL_DESCRIPTION


EXPORTING
IM_MATNR = P_MATNR
IMPORTING
EX_MAKT = WA_MAKT.

*PRINT OUTPUT
WRITE:/ WA_MARA-MATNR, WA_MARA-MTART, WA_MARA-MEINS, WA_MARA-MATKL.
WRITE:/ WA_MAKT-MATNR, WA_MAKT-MAKTX.

CLASS CL_METHODS_EXAMPLE IMPLEMENTATION.


METHOD GET_MATERIAL_DETAILS.
SELECT SINGLE * FROM MARA
INTO EX_MARA
WHERE MATNR = IM_MATNR.
ENDMETHOD.

METHOD GET_MATERIAL_DESCRIPTION.
SELECT * FROM MAKT
INTO EX_MAKT
WHERE MATNR = IM_MATNR.
ENDSELECT.
ENDMETHOD.
ENDCLASS.

Learner Questions

 In definition part of the static method get_material_description you have set the exporting
parameter as ex_mara type mara and in implementation part it is reading data from MAKT
(select * from makt into ex_makt) where as it has not even defined.how would it will be
possible to implement?? and one more thing that in class method definition part before
public section declaration you have mentioned implementation ....I did not get that thing
particularly? help me on this regards. Thank You,
 In definition part of the static method get_material_description you have set the exporting
parameter as ex_mara type mara and in implementation part it is reading data from MAKT
(select * from makt into ex_makt) where as it has not even defined.how would it will be
possible to implement?? and one more thing that in class method definition part before
public section declaration you have mentioned implementation ....I did not get that thing
particularly? help me on this regards. Thank You,

Please Sign in to ask a question

Local class with tables in SAP


ABAP
Last Updated: November 11th 2013 by Ashok Kumar Reddy

Using tables in SAP ABAP local classes, se11 table types in SAP Local classes

+ -
The bwlow example explains you of using table in SAP local classes using SAP ABAP programming
language.

Declare a table type


Create a table type in SE11(in this example we use ZSAPN_MARA which we have created already).

Define class and method

CLASS CL_USERDEFINED_TYPES DEFINITION.


PUBLIC SECTION.
METHODS : GET_MATERIALS_FOR_TYPE
IMPORTING IM_MTART TYPE MARA-MTART
EXPORTING ET_MARA TYPE ZSAPN_MARA. "table type in SE11
ENDCLASS.

Implement the defined class

CLASS CL_USERDEFINED_TYPES IMPLEMENTATION.


METHOD GET_MATERIALS_FOR_TYPE.
SELECT * FROM MARA
INTO TABLE ET_MARA
WHERE MTART = IM_MTART .
ENDMETHOD.
ENDCLASS.

Use the class and method


Create an object for the class and call the method
DATA : IT_MARA TYPE TABLE OF MARA.
DATA : WA_MARA TYPE MARA.
CREATE OBJECT LO_MATERIAL. "CREATE OBJECT
CALL METHOD LO_MATERIAL->GET_MATERIALS_FOR_TYPE
EXPORTING
IM_MTART = P_MTART
IMPORTING
ET_MARA = IT_MARA.

*PRINT OUTPUT
LOOP AT IT_MARA INTO WA_MARA.
WRITE:/ WA_MARA-MATNR, WA_MARA-MTART, WA_MARA-MEINS, WA_MARA-MATKL.
ENDLOOP.

The final code will be


REPORT ZSAPN_LOCAL_CLASS_METHODS.
CLASS CL_USERDEFINED_TYPES DEFINITION DEFERRED.

PARAMETERS : P_MTART TYPE MARA-MTART.


DATA : LO_MATERIAL TYPE REF TO CL_USERDEFINED_TYPES. "DECLARE CLASS
DATA : IT_MARA TYPE TABLE OF MARA.
DATA : WA_MARA TYPE MARA.
CLASS CL_USERDEFINED_TYPES DEFINITION.
PUBLIC SECTION.
METHODS : GET_MATERIALS_FOR_TYPE
IMPORTING IM_MTART TYPE MARA-MTART
EXPORTING ET_MARA TYPE ZSAPN_MARA.
ENDCLASS.
CREATE OBJECT LO_MATERIAL. "CREATE OBJECT
CALL METHOD LO_MATERIAL->GET_MATERIALS_FOR_TYPE
EXPORTING
IM_MTART = P_MTART
IMPORTING
ET_MARA = IT_MARA.

*PRINT OUTPUT
LOOP AT IT_MARA INTO WA_MARA.
WRITE:/ WA_MARA-MATNR, WA_MARA-MTART, WA_MARA-MEINS, WA_MARA-MATKL.
ENDLOOP.
CLASS CL_USERDEFINED_TYPES IMPLEMENTATION.
METHOD GET_MATERIALS_FOR_TYPE.
SELECT * FROM MARA
INTO TABLE ET_MARA
WHERE MTART = IM_MTART .
ENDMETHOD.
ENDCLASS.

Learner Questions
No Questions by learners, be first one to ask ..!!

Local class with user-defined types


in SAP ABAP
Last Updated: November 11th 2013 by Ashok Kumar Reddy

Defining a local class with user defined types in SAP ABAP programming, local
classes with user defined table types
+ -

It is very important for us to use user-defined types when using local classes in SAP ABAP
programs, the below example explains using user-defined types in SAP ABAP programs.

The below example explains you of using user defined types in SAP Local classes in SAP ABAP
programming.

Declare a table type


Declare a table type with required fields

TYPES : BEGIN OF TY_MARA,


MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MEINS TYPE MARA-MEINS,
MATKL TYPE MARA-MATKL,
END OF TY_MARA.
TYPES : TT_MARA TYPE TABLE OF TY_MARA.

Define class and method

CLASS CL_USERDEFINED_TYPES DEFINITION.


PUBLIC SECTION.
METHODS : GET_MATERIALS_FOR_TYPE
IMPORTING IM_MTART TYPE MARA-MTART
EXPORTING ET_MARA TYPE TT_MARA.
ENDCLASS.
Implement the defined class

CLASS CL_USERDEFINED_TYPES IMPLEMENTATION.


METHOD GET_MATERIALS_FOR_TYPE.
SELECT MATNR MTART MEINS MATKL FROM MARA
INTO TABLE ET_MARA
WHERE MTART = IM_MTART .
ENDMETHOD.
ENDCLASS.

Use the class and method


Create an object for the class and call the method

DATA : IT_MARA TYPE TABLE OF TY_MARA.


DATA : WA_MARA TYPE TY_MARA.
CREATE OBJECT LO_MATERIAL. "CREATE OBJECT
CALL METHOD LO_MATERIAL->GET_MATERIALS_FOR_TYPE
EXPORTING
IM_MTART = P_MTART
IMPORTING
ET_MARA = IT_MARA.

*PRINT OUTPUT
LOOP AT IT_MARA INTO WA_MARA.
WRITE:/ WA_MARA-MATNR, WA_MARA-MTART, WA_MARA-MEINS, WA_MARA-MATKL.
ENDLOOP.

The final code will be

REPORT ZSAPN_LOCAL_CLASS_METHODS.
CLASS CL_USERDEFINED_TYPES DEFINITION DEFERRED.

PARAMETERS : P_MTART TYPE MARA-MTART.


DATA : LO_MATERIAL TYPE REF TO CL_USERDEFINED_TYPES. "DECLARE CLASS
TYPES : BEGIN OF TY_MARA,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MEINS TYPE MARA-MEINS,
MATKL TYPE MARA-MATKL,
END OF TY_MARA.
TYPES : TT_MARA TYPE TABLE OF TY_MARA.
DATA : IT_MARA TYPE TABLE OF TY_MARA.
DATA : WA_MARA TYPE TY_MARA.
CLASS CL_USERDEFINED_TYPES DEFINITION.
PUBLIC SECTION.
METHODS : GET_MATERIALS_FOR_TYPE
IMPORTING IM_MTART TYPE MARA-MTART
EXPORTING ET_MARA TYPE TT_MARA.
ENDCLASS.
CREATE OBJECT LO_MATERIAL. "CREATE OBJECT
CALL METHOD LO_MATERIAL->GET_MATERIALS_FOR_TYPE
EXPORTING
IM_MTART = P_MTART
IMPORTING
ET_MARA = IT_MARA.

*PRINT OUTPUT
LOOP AT IT_MARA INTO WA_MARA.
WRITE:/ WA_MARA-MATNR, WA_MARA-MTART, WA_MARA-MEINS, WA_MARA-MATKL.
ENDLOOP.
CLASS CL_USERDEFINED_TYPES IMPLEMENTATION.
METHOD GET_MATERIALS_FOR_TYPE.
SELECT MATNR MTART MEINS MATKL FROM MARA
INTO TABLE ET_MARA
UP TO 50 ROWS
WHERE MTART = IM_MTART .
ENDMETHOD.
ENDCLASS.

Learner Questions

No Questions by learners, be first one to ask ..!!

You might also like