二维码

[HANA] 创建一个简单ABAP CDS视图

Twilight发表于 2019-10-10 14:10Twilight 最后回复于 2019-10-10 14:10 [复制链接] 15199 0

CDS是Core Data Services的简称,是HANA数据库向上层ABAP应用层提供数据的一种高效的方式,CDS模型是基于数据库data definition language[DDL] and data control language[DCL]构建的。

CDS实体的开发只能使用Eclipse for ABAP(ADT)工具,不能在SE80上直接开发。

1、新建cds
CDS1.jpg
数据定义
CDS2.jpg
cds名称和描述
CDS3.jpg
选择新建cds模板,cds有复杂的语法,工具提供了常见的使用方式模板
CDS4.jpg

2、完成生成cds代码
  1. @AbapCatalog.sqlViewName: 'ZSFLIGHTVIEW'    //必须与view名称不同
  2. @AbapCatalog.compiler.compareFilter: true
  3. @AbapCatalog.preserveKey: true
  4. @AccessControl.authorizationCheck: #NOT_REQUIRED
  5. @EndUserText.label: 'Sflight CDS view'
  6. @VDM: {
  7.     viewType: #BASIC
  8. }
  9. @ClientHandling.type: #INHERITED    //#INHERITED, #CLIENT_DEPENDENT, #CLIENT_INDEPENDENT
  10. @AbapCatalog.buffering: {
  11.     status: #ACTIVE,        //#ACTIVE , #NOT_ALLOWED, #SWITCHED_OFF
  12.     type: #GENERIC,         //#FULL , #GENERIC , #NONE , #SINGLE   
  13.     numberOfKeyFields: 003  //缓冲类型必须是#GENERIC才生效,且值范围在1到key个数之间
  14. }
  15. define view ZSFLIGHT_VIEW //这里的define关键字是可选的,也可以不写
  16.   as select from sflight
  17. {
  18.   key sflight.carrid,
  19.   key sflight.connid,
  20.   key sflight.fldate,
  21.       sflight.price,
  22.       sflight.currency,
  23.       sflight.planetype,
  24.       sflight.seatsmax,
  25.       sflight.seatsocc,
  26.       sflight.paymentsum,
  27.       sflight.seatsmax_b,
  28.       sflight.seatsocc_b,
  29.       sflight.seatsmax_f,
  30.       sflight.seatsocc_f
  31. }
复制代码

AbapCatalog.buffering缓存和SE11-sflight技术属性中的缓冲含义完全一致,不解释了
SFLIGHT.jpg
ClientHandling.type,cds提供数据的源(SFLIGHT)中是否有MANDT字段。
#INHERITED – If one of the data source is client dependent then the CDS view is client dependent. If all the data sources are client independent then the CDS view is client independent.
#CLIENT_DEPENDENT- If at least one data source is client dependent, then CDS view is client dependent else results in error.
#CLIENT_INDEPENDENT – All the data sources must be client independent , then CDS view is client independent else results in error.

3、激活cds模型,会在abap数据字典中生成视图
CDS5.jpg

4、预览cds提供的数据
CDS6.jpg
选择data preview或者直接运行cds模型代码
CDS7.jpg
选择Graphical Editor图形编辑器,模型图形化更直观
CDS8.jpg
回复

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表