# 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 [Link] 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 [Link] 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 ..!!