CLASS zcl_demo_003_amdp DEFINITION PUBLIC CREATE PUBLIC ABSTRACT.  PUBLIC SECTION.    INTERFACES: if_amdp_marker_hdb.    METHODS: get_spfli_details ABSTRACT IMPORTING VALUE(iv_mandt) TYPE mandt                                        EXPORTING VALUE(et_spfli) TYPE spfli_tab.  PROTECTED SECTION.  PRIVATE SECTION.ENDCLASS.CLASS zcl_demo_003_amdp IMPLEMENTATION.ENDCLASS.
CLASS zcl_demo_004_amdp DEFINITION PUBLICINHERITING FROM zcl_demo_003_amdp FINAL CREATE PUBLIC .  PUBLIC SECTION.    METHODS: get_spfli_details REDEFINITION.  PROTECTED SECTION.  PRIVATE SECTION.ENDCLASS.CLASS zcl_demo_004_amdp IMPLEMENTATION.  METHOD get_spfli_details BY DATABASE PROCEDURE FOR HDB LANGUAGE                           SQLSCRIPT OPTIONS READ-ONLY USING spfli.    et_spfli = SELECT * FROM spfli WHERE mandt = :iv_mandt;  ENDMETHOD.ENDCLASS.
CLASS zcl_demo_005_amdp DEFINITION PUBLIC INHERITING FROM zcl_demo_003_amdp FINAL CREATE PUBLIC .  PUBLIC SECTION.    METHODS get_spfli_details REDEFINITION.  PROTECTED SECTION.  PRIVATE SECTION.ENDCLASS.CLASS zcl_demo_005_amdp IMPLEMENTATION.  METHOD get_spfli_details .    SELECT * FROM spfli INTO TABLE et_spfli.  ENDMETHOD.ENDCLASS.
*&---------------------------------------------------------------------**& Report ztest_amdp2*&---------------------------------------------------------------------**&*&---------------------------------------------------------------------*REPORT ztest_amdp2.CLASS lcl_test_amdp DEFINITION.  PUBLIC SECTION.    CLASS-METHODS: run.ENDCLASS.CLASS lcl_test_amdp IMPLEMENTATION.  METHOD run.    NEW zcl_demo_005_amdp( )->get_spfli_details(    EXPORTING iv_mandt = sy-mandt IMPORTING et_spfli = DATA(lt_spfli) ).* AMDP Method call    TRY.        IF cl_abap_dbfeatures=>use_features( requested_features = VALUE #( ( cl_abap_dbfeatures=>call_amdp_method ) ) ) = abap_true.          NEW zcl_demo_004_amdp( )->get_spfli_details(           EXPORTING iv_mandt = sy-mandt IMPORTING et_spfli = DATA(lt_spfli_amdp) ).          BREAK-POINT.        ENDIF.      CATCH cx_abap_invalid_param_value.    ENDTRY.  ENDMETHOD.ENDCLASS.START-OF-SELECTION.  lcl_test_amdp=>run( ).