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读取相应的语言版本标签。
取字段数据时,可使用条件语句来设置字段值。
具体的示例如下:
可以使用 + - * / 计算逻辑
可以进行字段类型的强制转换
CDS学习(一)---简介相关推荐
- 主流深度学习算法简介
** 深度学习算法简介** 1. 深度学习主流算法包括: 1.1 CNN (卷积神经网络) 卷积神经网络(CNN)是最常见的深度学习方法之 一.自20 世纪80 年代后期以来,CNN 已应用于视觉识别 ...
- 几种常用深度学习框架简介
几种常用深度学习框架简介 一.TensorFlow 1.1 Tensorflow简介 1.2 使用文档 1.3 预训练模型 二.Pytorch 2.1 Pytorch简介 2.2 使用文档 2.3 预 ...
- 网页设计学习--HTML简介(一)
网页设计学习–html简介(一) 网页,是采用HTML来进行编写的. 一.什么是HTML? html,它的全称叫超文本标记语言(HyperTextMarkupLanguage)通俗点说,就是用来编写网 ...
- Log4j学习—Log4j简介
Log4j学习-Log4j简介 一. Log4j使用 1. 配置运行环境,包含log4j-1.2.9.jar,使用BasicConfigurator.configure()配置运行环境. ...
- Multi task learning多任务学习背景简介
2020-06-16 23:22:33 本篇文章将介绍在机器学习中效果比较好的一种模式,多任务学习(Multi task Learning,MTL).已经有一篇机器之心翻译的很好的博文介绍多任务学习了 ...
- JAVA并发编程JUC基础学习(简介)
2019独角兽企业重金招聘Python工程师标准>>> 之前写过一篇并发编程的简单实例应用,Future快速实现并发编程,可以很快的在自己的项目中应用,但并不系统,之前说过总结一篇( ...
- MKL学习——功能简介
基本术语 BLAS : Basic Linear Algebra Subprograms 基本线性代数子程序 BLACS : Basic Linear Algebra Communication Su ...
- 从0开始强化学习——强化学习的简介和分类
目录 写在前面 一. 强化学习简介 二. 强化学习分类 写在后面 写在前面 最近一直在给老板打工,已经很久没有写过博文了,最近打算系统学习一遍强化学习,所以就开个新坑,和大家分享一下在学习过程中的收获 ...
- GEO数据库学习一(简介 数据下载 芯片知识)
目录 1.GEO数据库简介 2.从GEO数据库下载数据 2.1使用GEOquery包从GEO数据库下载数据 2.2了解下载函数返回的对象 2.3ExpressionSet对象简单讲解 3.芯片基础知识 ...
最新文章
- PVD与CVD性能比较
- hdu3342 拓扑序
- js实现php中sleep()延时的功能
- 树状数组求逆序对_区间和的个数(树状数组)
- Android 6.0权限问题
- 有序二叉树c语言,二叉搜索树(BST)的实现(C语言)(原创)
- 不止是安防 红外摄像机在应急产业的应用
- linux php和java环境变量配置_java_linux配置java环境变量详细过程,直接上实现过程:
一. 解压安 - phpStudy...
- python 服务监控_promethues + python + flask监控后端服务状态
- 如何格式化基于 Intel 的 Mac?
- 2012-1-31学习日记
- 计算机网络工程税率多少,弱电工程增值税6%、9%、13%税率怎样选择?
- 深度linux 1050ti,Archlinux安装NVIDIA1050Ti显卡驱动
- Vivado 错误代码 [DRC PDCN-2721] 解决
- 弯曲时空量子场论的历史与现状 (上)
- 初测ONES项目管理工具,寻求与众不同
- SEP(标准必要专利)
- 物流行业大数据分析:数据驱动物流运营效率提升
- JMSMQ系列之JMS的请求和回应
- 华为电脑系统linux下载,华为操作系统openeuler去哪下载?官方下载ISO安装包