AMDP Procedure with Changing Table Parameter
SPLFI Table Details
AMDP Procedure with changing table parameter- which can be used both for reading and writing purpose.
Report to check AMDP procedure method.
Test In Debugging Details:
Input details
Output details
AMDP procedure method with changing table parameter
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_amdp.
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( ).