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

Object Oriented Programming in ABAP Part 3

Uploaded by

aaamir khan
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views

Object Oriented Programming in ABAP Part 3

Uploaded by

aaamir khan
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Enhancing ABAP Programs:

Leveraging Class Methods for


Sales Order Display and Utilizing
Multiple Tables

1. Calling Our Usual ABAP Class for Sales


Order Display in Program :-
Requirement :-
We have created this a class in our previous part to display the Sales Order
details.

Enhancing ABAP Programs: Leveraging Class Methods for Sales Order Display and Utilizing Multiple Tables 1
Now, The Customer wants me to use this method from the program.

Solution :-
Step 1 :- Go to ABAP Editor ( SE38 ) and create a executable program.

Enhancing ABAP Programs: Leveraging Class Methods for Sales Order Display and Utilizing Multiple Tables 2
Step 2 :- provide a parameter for input number.

Step 3 :- Define variable for the output purpose.

Enhancing ABAP Programs: Leveraging Class Methods for Sales Order Display and Utilizing Multiple Tables 3
Step 4 :- Define object for our usual ABAP class and create the object.

Step 5 :- Call the method and provide the above defined output parameters
and use write statement to display the output.

Enhancing ABAP Programs: Leveraging Class Methods for Sales Order Display and Utilizing Multiple Tables 4
Code :-
*&--------------------------------------------------------------
*& Report ZAR_USUAL_ABAP_CLASS
*&--------------------------------------------------------------
*&
*&--------------------------------------------------------------
REPORT ZAR_USUAL_ABAP_CLASS.

DATA : perdat type erdat,


perzet type erzet,
pernam type ernam,
pvbtyp type vbtypl.

PARAMETERS : p_vbeln type vbeln_va.

START-OF-SELECTION.

*&----------------------------------------------
*Creating Object for Usual ABAP Class
DATA(lo_object) = new ZAR_USUAL_ABAP_CLASS( ).

CALL METHOD zar_usual_abap_class=>display_sales_order_details


EXPORTING
p_vbeln = p_vbeln
IMPORTING
p_erdat = perdat
p_erzet = perzet
p_ernam = pernam
p_vbtyp = pvbtyp
EXCEPTIONS
wrong_input = 1
others = 2
.

Enhancing ABAP Programs: Leveraging Class Methods for Sales Order Display and Utilizing Multiple Tables 5
WRITE : perdat, perzet, pernam, pvbtyp.

*&-------------------------------------------------------------
*&End of Program
*&--------------------------------------------------------------

Execute the Program :-

Press F8 to execute the program.

Enhancing ABAP Programs: Leveraging Class Methods for Sales Order Display and Utilizing Multiple Tables 6
2. Using Multiple Tables (VBAK, VBAP ) to
display Sales Order Details :-
Requirement :-
Take Single Sales Document Number as input.

Write a method in the above used class.

Use multiple tables VBAK, VBAP to fetch the Sales Order details.

Solution :-
Step 1 :- Go to SE24 and open our class in change mode.

Enhancing ABAP Programs: Leveraging Class Methods for Sales Order Display and Utilizing Multiple Tables 7
Step 2 :- Write the method name and provide the details.

Step 3 :- Provide the parameters one as input.

Enhancing ABAP Programs: Leveraging Class Methods for Sales Order Display and Utilizing Multiple Tables 8
Step 4 :- Since, we are require to store data from two tables, therefore we will
have to pass a table type as exporting parameter.

Create a type structure in SE11 for 4 fields from VBAK and 2 fields from
VBAP.

now create the corresponding table type for the same.

Enhancing ABAP Programs: Leveraging Class Methods for Sales Order Display and Utilizing Multiple Tables 9
Step 5 :- Now we can pass this as a parameter.

Step 6 :- Now write the corresponding logic in source code.

Create a type structure for both VBAK and VBAP table and corresponding
internal table and work area.

Enhancing ABAP Programs: Leveraging Class Methods for Sales Order Display and Utilizing Multiple Tables 10
Write the select query to fetch the corresponding data.

now define a work area for for the same structure which we used in
parameters and fill that work area with the data stored in internal tables of
header and item tables.

Enhancing ABAP Programs: Leveraging Class Methods for Sales Order Display and Utilizing Multiple Tables 11
Code :-
method GET_DATA.
types : begin of ty_vbak,
vbeln type vbeln_va,
erdat type erdat,
erzet type erzet,
ernam type ernam,
vbtyp type vbtypl,
end of ty_vbak.

types : begin of ty_vbap,


vbeln type vbeln_va,
posnr type posnr_va,
matnr type matnr,
end of ty_vbap.

Enhancing ABAP Programs: Leveraging Class Methods for Sales Order Display and Utilizing Multiple Tables 12
DATA : lt_vbak type table of ty_vbak,
ls_vbak type ty_vbak,
lt_vbap type table of ty_vbap,
ls_vbap type ty_vbap,
ls_final type ZAR_SALES_ORDER_DETAILS.

select vbeln erdat erzet ernam vbtyp


from vbak into table lt_vbak
where vbeln = p_vbeln.

if lt_vbak is not INITIAL.


select vbeln posnr matnr
from vbap
into table lt_vbap
FOR ALL ENTRIES IN lt_vbak
where vbeln = lt_vbak-vbeln.

loop at lt_vbap into ls_vbap.


read table lt_vbak into ls_vbak with key vbeln = ls_
if sy-subrc eq 0.
ls_final-vbeln = ls_vbak-vbeln.
ls_final-erdat = ls_vbak-erdat.
ls_final-erzet = ls_vbak-erzet.
ls_final-ernam = ls_vbak-ernam.
ls_final-vbtyp = ls_vbak-vbtyp.
endif.

ls_final-posnr = ls_vbap-posnr.
ls_final-matnr = ls_vbap-matnr.

append ls_final to lt_data.


endloop.

Enhancing ABAP Programs: Leveraging Class Methods for Sales Order Display and Utilizing Multiple Tables 13
endif.
endmethod.

Calling the Above Created Method in ABAP


Editor :-
Step 1 :- Create a executable program in ABAP Editor.

Step 2 :- create a internal table of the above created table type.

Step 3 :- Create a parameter for the input.

Step 4 :- Create the object of the class.

Step 5 :- call the method of the class.

Step 6 :- Use factory method of CL_SALV_TABLE class to display the data.

Program :-
*&--------------------------------------------------------------
*& Report ZAR_USUAL_ABAP_CLASS
*&--------------------------------------------------------------
*&
*&--------------------------------------------------------------
REPORT ZAR_USUAL_ABAP_CLASS.

data : lt_final type table of ZAR_SALES_ORDER_DETAILS.

PARAMETERS : p_vbeln type vbeln_va.

START-OF-SELECTION.

*&----------------------------------------------
*Creating Object for Usual ABAP Class
DATA(lo_object) = new ZAR_USUAL_ABAP_CLASS( ).

Enhancing ABAP Programs: Leveraging Class Methods for Sales Order Display and Utilizing Multiple Tables 14
CALL METHOD lo_object->get_data
EXPORTING
p_vbeln = p_vbeln
IMPORTING
lt_data = lt_final
.

TRY.
CALL METHOD cl_salv_table=>factory
EXPORTING
list_display = IF_SALV_C_BOOL_SAP=>FALSE
IMPORTING
r_salv_table = data(lo_disp)
CHANGING
t_table = lt_final
.
CATCH cx_salv_msg.
ENDTRY.

lo_disp->display( ).

*&-------------------------------------------------------------
*&End of Program
*&--------------------------------------------------------------

Execute :-

Enhancing ABAP Programs: Leveraging Class Methods for Sales Order Display and Utilizing Multiple Tables 15
Execute the code

Enhancing ABAP Programs: Leveraging Class Methods for Sales Order Display and Utilizing Multiple Tables 16

You might also like