ABAP 调用CDS VIEW 测试

 场景:ABAP读取主视图访问依赖视图中的字段,

1: 先建一个从视图 ydemo_c_status

@AbapCatalog.sqlViewName: 'YDEMOSTATUS'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'status '
define view ydemo_c_status as  select from sflight 
{
@EndUserText.label: 'Carrid'
   key sflight.carrid,
   key sflight.connid,
   @EndUserText.label: 'Plane Type'
   planetype
}

2: 创建主视图:  ydemo_c_Rstatus

@AbapCatalog.sqlViewName: 'YDEMOSTATUSR'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'root status'
define view ydemo_c_Rstatus as select from spfli 
association [0..1] to ydemo_c_status as _spfliPtype
on $projection.connid  = _spfliPtype.connid
and $projection.carrid = _spfliPtype.carrid
{
   key spfli.carrid,
   key spfli.connid, 
   @ObjectModel.association.type:  [#TO_COMPOSITION_CHILD]
   _spfliPtype

   }
 

3:ABAP测试:


TYPES:BEGIN OF ty_data,
        carrid    TYPE ydemo_c_rstatus-carrid,
        connid    TYPE ydemo_c_rstatus-connid,
        planetype TYPE ydemo_c_status-planetype,
      END OF ty_data.
TYPES: ty_t_data TYPE STANDARD TABLE OF ty_data.
DATA:  lt_tab TYPE ty_t_data.


"\_spfliptype是VIEW ydemo_c_Rstatus 中的association view 的名字,
* VIEW ydemo_c_Rstatus 并不包含planetype 这个字段,但是出可以访问


SELECT carrid,
       connid,
       \_spfliptype-planetype AS plane_type  

  FROM ydemo_c_rstatus
  WHERE ydemo_c_rstatus~carrid = 'LH'
    AND \_spfliptype-planetype = 'A319' INTO TABLE @lt_tab.

LOOP AT lt_tab ASSIGNING FIELD-SYMBOL(<fs>).
  WRITE:/ <fs>-carrid,<fs>-connid,<fs>-planetype.
ENDLOOP.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值