CLASS zcl_demo_006_amdp DEFINITION PUBLIC FINAL CREATE PUBLIC .  PUBLIC SECTION.    INTERFACES: if_amdp_marker_hdb.    METHODS: get_spfli_details_public CHANGING VALUE(ct_spfli) TYPE spfli_tab.  PROTECTED SECTION.  PRIVATE SECTION.    METHODS: get_spfli_details_private CHANGING VALUE(ct_spfli) TYPE spfli_tab.ENDCLASS.CLASS zcl_demo_006_amdp IMPLEMENTATION.  METHOD get_spfli_details_public BY DATABASE PROCEDURE                                  FOR HDB LANGUAGE SQLSCRIPT                                   OPTIONS READ-ONLY                                   USING zcl_demo_006_amdp=>get_spfli_details_private.    CALL "ZCL_DEMO_006_AMDP=>GET_SPFLI_DETAILS_PRIVATE"( CT_SPFLI__IN__ => :CT_SPFLI, CT_SPFLI => :CT_SPFLI );  ENDMETHOD.  METHOD get_spfli_details_private BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT OPTIONS READ-ONLY USING spfli.    ct_spfli = SELECT s.* FROM spfli AS s INNER JOIN :ct_spfli as i ON s.mandt = i.mandt AND s.carrid = i.carrid;  ENDMETHOD.ENDCLASS.
*&---------------------------------------------------------------------**& Report ztest_amdp3*&---------------------------------------------------------------------**&*&---------------------------------------------------------------------*REPORT ztest_amdp3.CLASS lcl_test_amdp DEFINITION.  PUBLIC SECTION.    CLASS-METHODS: run.ENDCLASS.CLASS lcl_test_amdp IMPLEMENTATION.  METHOD run.    DATA(lt_spfli) = VALUE spfli_tab( ( mandt = sy-mandt carrid = 'AA' ) ( mandt = sy-mandt carrid = 'AB' ) ).    DATA(lt_spfli_temp) = 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_006_amdp( )->get_spfli_details_public( CHANGING ct_spfli = lt_spfli ).          BREAK-POINT.        ENDIF.      CATCH cx_abap_invalid_param_value.    ENDTRY.  ENDMETHOD.ENDCLASS.START-OF-SELECTION.  lcl_test_amdp=>run( ).