ABAP 调用CDS VIEW 测试

本文详细介绍了如何在ABAP中创建从视图和主视图,并通过示例展示了如何在ABAP代码中测试和访问这些视图的字段。首先创建了一个名为ydemo_c_status的从视图,然后构建了主视图ydemo_c_Rstatus,该视图包含一个关联到从视图的字段。最后,通过ABAP测试代码展示了如何查询主视图并访问关联视图中的planetype字段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 场景: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.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值