AMDP

发布时间 2023-11-12 21:07:51作者: 蜡哲图

CDS

 

@ClientHandling.type: #CLIENT_DEPENDENT
@AccessControl.authorizationCheck:#NOT_ALLOWED
@Consumption.filter.mandatory: True
@Consumption.filter.selectionType: #RANGE
define table function ztest_cds_026
  with parameters
    carrid :s_carr_id
  returns
  {
    client   :s_mandt;
    carrname :s_carrname;
    connid   :s_conn_id;
    cityfrom :s_from_cit;
    cityto   :s_to_city;
  }
  implemented by method
    zcl_test_amdp_002=>GET_SCARR_SPFLI_FOR_CDS;
    
 

CLASS zcl_test_amdp_002 DEFINITION
  PUBLIC
  FINAL
  CREATE PUBLIC .

  PUBLIC SECTION.
  INTERFACES: if_amdp_marker_hdb.
  class-METHODS:get_scarr_spfli_for_cds for table FUNCTION ztest_cds_026.
  PROTECTED SECTION.
  PRIVATE SECTION.
ENDCLASS.



CLASS zcl_test_amdp_002 IMPLEMENTATION.
METHOD get_scarr_spfli_for_cds
         BY DATABASE FUNCTION FOR HDB
         LANGUAGE SQLSCRIPT
         OPTIONS READ-ONLY
         USING scarr spfli.
    RETURN SELECT sc.mandt as client,
                  sc.carrname, sp.connid, sp.cityfrom, sp.cityto
                  from scarr as sc
                    inner join spfli as sp on sc.mandt = sp.mandt and
                                              sc.carrid = sp.carrid
                    where sp.mandt = sp.mandt AND
                          sp.carrid = :carrid
                    ORDER BY sc.mandt, sc.carrname, sp.connid;

ENDMETHOD.
ENDCLASS.
View Code

调用

 

REPORT zcktest.
TABLES spfli.
SELECT-OPTIONS:s_carrid FOR spfli-carrid.

START-OF-SELECTION.

  SELECT *
FROM demo_cds_get_scarr_spfli( carrid = @s_carrid-low ) "AA 

  INTO TABLE @DATA(result1)
    .

  cl_demo_output=>display( result1 ).
View Code