OOPS ABAP: Usual ABAP Class(Local Class Creation using Static method)
Static Methods:
The static methods are declared using the keyword CLASS-METHODS and called with the class with out creating the object with the operator (=>).
Example:
REPORT zvb_static_cls.
TYPES: BEGIN OF ty_vbak,
vbeln TYPE vbak-vbeln,
erdat TYPE vbak-erdat,
erzet TYPE vbak-erzet,
END OF ty_vbak,
BEGIN OF ty_vbap,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
END OF ty_vbap,
BEGIN OF ty_final,
vbeln TYPE vbak-vbeln,
erdat TYPE vbak-erdat,
erzet TYPE vbak-erzet,
posnr TYPE vbap-posnr,
END OF ty_final.
DATA:it_vbak TYPE TABLE OF ty_vbak,
is_vbak TYPE ty_vbak,
it_vbap TYPE TABLE OF ty_vbap,
is_vbap TYPE ty_vbap,
it_final TYPE TABLE OF ty_final,
is_final TYPE ty_final.
PARAMETERS : p_vbeln TYPE vbak-vbeln.
CLASS class1 DEFINITION.
PUBLIC SECTION.
CLASS-METHODS display IMPORTING p_vbeln TYPE vbeln_va
EXPORTING it_final TYPE ztt_so
EXCEPTIONS wrong_input.
ENDCLASS.
CLASS class1 IMPLEMENTATION.
METHOD display.
SELECT vbeln erdat erzet
FROM vbak
INTO TABLE it_vbak
WHERE vbeln = p_vbeln.
IF it_vbak IS NOT INITIAL.
SELECT vbeln posnr
FROM vbap
INTO TABLE it_vbap
FOR ALL ENTRIES IN it_vbak
WHERE vbeln = it_vbak-vbeln.
ENDIF.
LOOP AT it_vbap INTO is_vbap.
is_final-vbeln = is_vbap-vbeln.
is_final-posnr = is_vbap-posnr.
READ TABLE it_vbak INTO is_vbak WITH KEY vbeln = is_vbap-vbeln.
is_final-erdat = is_vbak-erdat.
is_final-erzet = is_vbak-erzet.
APPEND is_final TO it_final.
ENDLOOP.
IF sy-subrc <> 0.
RAISE wrong_input.
ENDIF.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
* DATA:lo_object TYPE REF TO class1.
* CREATE OBJECT lo_object.
* CALL METHOD lo_object->display
class1=>display( EXPORTING
p_vbeln = p_vbeln
IMPORTING
it_final = it_final ).
IF it_final IS NOT INITIAL.
LOOP AT it_final INTO is_final.
WRITE: / is_final-vbeln,
10 is_final-posnr,
30 is_final-erdat,
50 is_final-erzet.
ENDLOOP.
ELSE.
MESSAGE 'No data available for the input' TYPE 'E'.
ENDIF.
Comments
Post a Comment