‘‘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读取相应的语言版本标签。

取字段数据时,可使用条件语句来设置字段值。

具体的示例如下:



可以使用 + - * / 计算逻辑

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

CDS学习(一)---简介相关推荐

  1. 主流深度学习算法简介

    ** 深度学习算法简介** 1. 深度学习主流算法包括: 1.1 CNN (卷积神经网络) 卷积神经网络(CNN)是最常见的深度学习方法之 一.自20 世纪80 年代后期以来,CNN 已应用于视觉识别 ...

  2. 几种常用深度学习框架简介

    几种常用深度学习框架简介 一.TensorFlow 1.1 Tensorflow简介 1.2 使用文档 1.3 预训练模型 二.Pytorch 2.1 Pytorch简介 2.2 使用文档 2.3 预 ...

  3. 网页设计学习--HTML简介(一)

    网页设计学习–html简介(一) 网页,是采用HTML来进行编写的. 一.什么是HTML? html,它的全称叫超文本标记语言(HyperTextMarkupLanguage)通俗点说,就是用来编写网 ...

  4. Log4j学习—Log4j简介

    Log4j学习-Log4j简介 一. Log4j使用      1. 配置运行环境,包含log4j-1.2.9.jar,使用BasicConfigurator.configure()配置运行环境.   ...

  5. Multi task learning多任务学习背景简介

    2020-06-16 23:22:33 本篇文章将介绍在机器学习中效果比较好的一种模式,多任务学习(Multi task Learning,MTL).已经有一篇机器之心翻译的很好的博文介绍多任务学习了 ...

  6. JAVA并发编程JUC基础学习(简介)

    2019独角兽企业重金招聘Python工程师标准>>> 之前写过一篇并发编程的简单实例应用,Future快速实现并发编程,可以很快的在自己的项目中应用,但并不系统,之前说过总结一篇( ...

  7. MKL学习——功能简介

    基本术语 BLAS : Basic Linear Algebra Subprograms 基本线性代数子程序 BLACS : Basic Linear Algebra Communication Su ...

  8. 从0开始强化学习——强化学习的简介和分类

    目录 写在前面 一. 强化学习简介 二. 强化学习分类 写在后面 写在前面 最近一直在给老板打工,已经很久没有写过博文了,最近打算系统学习一遍强化学习,所以就开个新坑,和大家分享一下在学习过程中的收获 ...

  9. GEO数据库学习一(简介 数据下载 芯片知识)

    目录 1.GEO数据库简介 2.从GEO数据库下载数据 2.1使用GEOquery包从GEO数据库下载数据 2.2了解下载函数返回的对象 2.3ExpressionSet对象简单讲解 3.芯片基础知识 ...

最新文章

  1. PVD与CVD性能比较
  2. hdu3342 拓扑序
  3. js实现php中sleep()延时的功能
  4. 树状数组求逆序对_区间和的个数(树状数组)
  5. Android 6.0权限问题
  6. 有序二叉树c语言,二叉搜索树(BST)的实现(C语言)(原创)
  7. 不止是安防 红外摄像机在应急产业的应用
  8. linux php和java环境变量配置_java_linux配置java环境变量详细过程,直接上实现过程: 一. 解压安 - phpStudy...
  9. python 服务监控_promethues + python + flask监控后端服务状态
  10. 如何格式化基于 Intel 的 Mac?
  11. 2012-1-31学习日记
  12. 计算机网络工程税率多少,弱电工程增值税6%、9%、13%税率怎样选择?
  13. 深度linux 1050ti,Archlinux安装NVIDIA1050Ti显卡驱动
  14. Vivado 错误代码 [DRC PDCN-2721] 解决
  15. 弯曲时空量子场论的历史与现状 (上)
  16. 初测ONES项目管理工具,寻求与众不同
  17. SEP(标准必要专利)
  18. 物流行业大数据分析:数据驱动物流运营效率提升
  19. JMSMQ系列之JMS的请求和回应
  20. 华为电脑系统linux下载,华为操作系统openeuler去哪下载?官方下载ISO安装包

热门文章

  1. FreeBSD网站平台建设全过程(一、系统安装)
  2. 计算机开机一直无法访问,关于电脑开机一直正在启动的详细处理方法
  3. 小微企业可以申请高新技术企业吗?
  4. 你知不知道,天空没有想象中蓝。
  5. 利用FileReader和FileWriter完成一个文件拷贝功能
  6. 洛谷P1462 通往奥格瑞玛的道路
  7. setsockopt用法描述
  8. 杂谈 | 从刘慈欣科幻小说到元宇宙
  9. springboot+vue+Elementui学生考勤在线请假系统
  10. 左右手坐标转换 四元数