关于abap:更改表参数的-AMDP-过程

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( ).

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理