CLASS zcl_demo_007_amdp DEFINITION PUBLIC FINAL CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES: if_amdp_marker_hdb.
METHODS: get_spfli_details_dp IMPORTING VALUE(iv_mandt) TYPE mandt
VALUE(iv_carrid) TYPE spfli-carrid
EXPORTING VALUE(et_spfli) TYPE spfli_tab.
METHODS: get_spfli_details_df IMPORTING VALUE(iv_mandt) TYPE mandt
VALUE(iv_carrid) TYPE spfli-carrid
RETURNING VALUE(rt_spfli) TYPE spfli_tab.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_demo_007_amdp IMPLEMENTATION.
METHOD get_spfli_details_dp BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT OPTIONS READ-ONLY
USING zcl_demo_007_amdp=>get_spfli_details_df.
et_spfli = SELECT * FROM "ZCL_DEMO_007_AMDP=>GET_SPFLI_DETAILS_DF"(IV_MANDT => IV_MANDT, IV_CARRID => IV_CARRID);
ENDMETHOD.
METHOD get_spfli_details_df BY DATABASE FUNCTION FOR HDB LANGUAGE SQLSCRIPT OPTIONS READ-ONLY USING spfli.
RETURN SELECT * FROM spfli WHERE mandt = :iv_mandt AND carrid = :iv_carrid;
ENDMETHOD.
ENDCLASS.
*&---------------------------------------------------------------------*
*& Report ztest_amdp4
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ztest_amdp4.
CLASS lcl_test_amdp DEFINITION.
PUBLIC SECTION.
CLASS-METHODS: run.
ENDCLASS.
CLASS lcl_test_amdp IMPLEMENTATION.
METHOD run.
* AMDP Method call
TRY.
IF cl_abap_dbfeatures=>use_features(requested_features = VALUE #( ( cl_abap_dbfeatures=>call_amdp_method)
(cl_abap_dbfeatures=>amdp_table_function) ) ) = abap_true.
NEW zcl_demo_007_amdp( )->get_spfli_details_dp( EXPORTING iv_mandt = sy-mandt iv_carrid = 'AA'
IMPORTING et_spfli = DATA(lt_spfli) ).
BREAK-POINT.
ENDIF.
CATCH cx_abap_invalid_param_value.
ENDTRY.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
lcl_test_amdp=>run().