CDS 增强ODATA 可以增加复杂的计算逻辑

1 在ECPLISE中创建CDSVIEW:

   CDS--->Data definition 

 

 

@AbapCatalog.sqlViewName: 'YDEMO_CDS_V01S'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'DEMO ODATA ENH'
define view YDEMO_CDS_V01
as select from spfli
association [0..1] to scarr as B
on B.carrid = spfli.carrid {
       key spfli.carrid,
       key B.carrname,
       key spfli.connid,
       spfli.cityfrom,
       spfli.cityto
}

 

@AbapCatalog.sqlViewName: 'YDEMO_CDS_V02S'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'DEMO ODATA ENH'
define view YDEMO_CDS_V02
as select from spfli 
 inner join scarr as B
on B.carrid = spfli.carrid {
       key spfli.carrid,
       key B.carrname,
       key spfli.connid,
       spfli.cityfrom,
       spfli.cityto
}
 

 

激活,上面两个方式创建的CDS VIEW在SE11中是一样的,结果不一样

2: 进SAP ,SEGW,创建项目并 Reference --->Data Source

 

 3: Gerenate runtime object

4: : register and test

5: copy  YDEMO_CDS_V01_GET_ENTITYSET 的代码,然后Redine这个方法,并把刚才的代码黏贴到refine后的方法中,

  if_sadl_gw_dpc_util~get_dpc( )->get_entityset( EXPORTING io_tech_request_context = io_tech_request_context
                                                   IMPORTING et_data                 = et_entityset
                                                             es_response_context     = es_response_context ).

 

   METHOD ydemo_cds_v01_get_entityset.
    if_sadl_gw_dpc_util~get_dpc( )->get_entityset( EXPORTING io_tech_request_context = io_tech_request_context
                                                 IMPORTING et_data                 = et_entityset
                                                           es_response_context     = es_response_context ).
*  在这里你可以增加新地逻辑
    LOOP AT et_entityset ASSIGNING FIELD-SYMBOL(<fs>).
      <fs>-cityto = 'TEST CITY TO'.
    ENDLOOP.
 
  ENDMETHOD.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值