CDS学习(一)---简介

‘‘Core Data Services to build design-time data-persistence models’’“构建设计阶段数据持久性模型的核心数据服务(CDS)”它是一个基础结构,数据库开发人员可以使用它来创建应用程序服务向UI客户端公开的底层(持久)数据模型。ABAP和HANA平台都支持CDS。

CDS其他的好处
1、 语义丰富的数据模型:实体关系模型,本质上是声明性的,非常接近概念的概念。领域特定语言(DDL、QL、DCL)。陈述性的,接近概念思维的。
2、 CDS完全基于SQL:任何“标准SQL”特性都可以直接使用,比如连接、内建函数等。
3、 完全兼容任何数据库:CDS是Open SQL视图中生成到管理的,并集成到SAP HANA层。所有主要数据库都支持这些视图。
4、 支持注释:CDS语法支持特定领域的注释,可以被其他组件轻松评估,比如UI、analytics和OData服务。
@AnalyticsDetails.aggregrationBehaviour SUM() Substring() [SQL functions]
1、 关联:视图之上的视图的简化定义。沿着关系导航的路径表达式。
2、 可扩展性:我们可以使用将自动添加到CDS视图及其使用层次结构中的字段来扩展sap定义的CDS视图。 在模型级别上扩展 通过注释在元模型级别上。
CDS实体和它们的元数据是可扩展的,并且最佳地集成到ABAP数据字典和ABAP语言中。

CDS View和SQL View的关系就像在ABAP数据字典里定义的表和创建的数据库表。
在这里插入图片描述

上面的方式分别定义了SQL View和CDS View的名称。
在这里插入图片描述

如果写成define view entity,就不需要单独定义SQL View的名称。
在这里插入图片描述

Metadata可以丰富视图的定义;
定义都是以@开头;
如果是基于数据字典的视图定义,@AbapCatalog.sqlViewName是必需的;
CDS Views是从NW7.40 SP05开始的,SELECT代码必须使用新语法;
只有ASCII的字符可以被使用;
关键字可以全部大写、全部小写,首字符大写,其它的大小写混合不可以;
段注释使用/…./, 行注释使用//
语句可以使用;结束,但不是必需的;

有两种方式可以指定字段清单
在这里插入图片描述

Inner join的使用,表名与字段之前使用点号. 与在abap里的写法一样,也可以使用as a来替代某个表,可以使用where
在这里插入图片描述
在这里插入图片描述

基于DDIC视图的CDS会用到的一些重要的ABAP视图语义
在这里插入图片描述

AbapCatalog.sqlViewName 用来定义CDS数据库视图的名称
ClientHandling.type 定义是否区分客户端,默认值#INHERITIED 表示区分客户端
ClientHandling.algorithm 设置客户端,#SESSION_VARIABLE或者#AUTOMATED
AccessControl.authorizationCheck true for false, 访问控制
AbapCatalog.compiler.compareFilter true for false,过滤器设置
AbapCatalog.buffering.<…> 设置缓存,CDS viewentities不支持

为字段设置语义,如金额、数量,需要设置计量单位,涉及到金额、数量的字段强烈建议使用。有两种写法,如果语义在字段的后面,需要在@后面加上< 。不支持CDS View
在这里插入图片描述

在这里插入图片描述

将相同类的语义对象分组,使用 : { , } 来实现
在这里插入图片描述

如果数据元素文本没有从数据源中继承,那么必须要指定数据元素文本的语义。文本标签的字符长度也是有限制的。
在这里插入图片描述

文本标签通过SE63可以进行多语言的翻译。
在这里插入图片描述

可以通过类CL_DD_DDL_ANNOTATION_SERVICE读取相应的语言版本标签。
在这里插入图片描述

取字段数据时,可使用条件语句来设置字段值。
在这里插入图片描述

具体的示例如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可以使用 + - * / 计算逻辑
在这里插入图片描述

可以进行字段类型的强制转换

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值