几年前翻译过CDS的相关文章,部分内容已经过时,比如当时的DDIC CDS在7.55以后已经沦为obsolete,在新版本中,开发者应使用DEFINE VIEW ENTITY而非DEFINE VIEW.

这里按新文档更新一下,本文主要基于谷歌翻译,稍微调整了不通顺的文本。

ABAP Core Data Services (ABAP CDS) 是  CDS 概念在ABAP应用服务器(AS ABAP)的实现。 ABAP CDS 允许开发者在 AS ABAP 的标准数据库上定义语义数据模型,并支持使用行为模型的 ABAP RAP(ABAP RESTful Programming Model)。 ABAP CDS 中定义的数据模型的实体提供了比以前的 DDIC 数据库表和 ABAP 字典中定义的 DDIC 视图更强的访问功能,从而可以优化基于 ABAP SQL 的应用程序。 如果 AS ABAP 使用 SAP HANA 数据库,情况尤其如此,因为它的内存特性可以得到最佳利用。 ABAP RAP 既基于 ABAP CDS 中定义的数据模型,也基于对服务和行为建模的特殊 CDS 对象。

参考:ABAP RESTful Programming Model

在CDS源代码中使用ABAP CDS提供的CDS DDL(数据定义)、CDS SDL(服务定义)、CDS BDL(行为定义)和CDS DCL(访问控制)以CDS对象的形式定义数据模型和行为模型。 CDS annotations可用于定义 CDS 对象的元数据。 使用 CDS 模式表示法 (CSN) 可以在 ABAP CDS 数据模型和不同平台上的数据模型之间进行数据交换。 CSN 是一种用于数据模型之间数据交换的数据格式,例如,它可用于在 ABAP CDS 和 HANA CDS 之间交换元数据。

CDS 注释

CDS 注释将元数据添加到 CDS 对象。注释可以在 DDL 源代码、SDL 源代码和 DCL 源代码中指定,并外包给元数据扩展。注释定义可用于将注释本身创建为 CDS 对象。注释定义规定了如何使用注释。 CDS 数据定义 CDS 数据定义是使用 DDL 源代码中的 ABAP CDS 的 CDS DDL 创建的。它们定义了以下 CDS 实体,这些实体可以作为 ABAP 程序中的数据类型访问,也可以作为读取 ABAP SQL 语句的数据源访问。 CDS 视图实体

使用 SQL 访问其他数据源,并可以使用注释以丰富语义的 CDS 实体。

CDS 投影视图

基于 CDS 视图和投影其元素子集的 CDS 实体。

CDS 表函数

在 AMDP 函数中实现的 CDS 实体。

CDS 层次结构

从数据源创建 SQL 层次结构的 CDS 实体。

CDS 自定义实体

手动实现运行时的数据模型的 CDS 实体。

CDS 抽象实体

仅描述类型属性且未实例化任何数据库对象的 CDS 实体。

基于 CDS DDIC 的视图(过时)

使用 SQL 访问其他数据源并可以使用注释在语义上进行丰富的 CDS 实体。这些实体在技术上基于字典对象,并从 7.55 版开始被不再基于字典对象的 CDS 视图实体所取代。 ABAP CDS 中的 CDS DDL 还包含用于增强 CDS 实体的语言元素。

CDS 调整对象

CDS 对象的 CDS 调整对象定义可以单独传输的技术设置和调整。

CDS RAP 对象

ABAP RAP的数据和行为模型是基于CDS实体和SDL源代码或BDL源代码中使用CDS SDL和CDS BDL创建的特殊CDS RAP对象:

CDS 服务定义:为业务服务公开 CDS 实体的 CDS RAP 对象。

CDS 行为定义:定义 RAP 业务对象 (RAP BO) 行为的 CDS RAP 对象。

CDS 访问控制

CDS 访问控制基于 CDS 角色,这些角色在 DCL 源代码的 CDS DCL 中定义。当访问分配有 CDS 角色的 CDS SQL 实体时,默认情况下会评估其他访问条件。 CDS 系统实体 CDS 系统实体是在 ABAP CDS 和 ABAP SQL 中常用的预定义 CDS 实体。

提示

CDS 对象是使用 CDS 源代码传输的。实际对象,如在 DDL 源代码中使用 CDS 数据定义定义的 CDS 实体,是在传输后通过在目标系统中激活而创建的。 CDS 源代码只能在基于 Eclipse 的 ABAP 开发工具 (ADT) 中进行编程。数据定义语言 (DDL)、服务定义语言 (SDL)、行为定义语言 (BDL) 和数据控制语言 (DCL) 有不同的编辑器。 ADT 文档描述了如何使用这些编辑器。 CDS 源代码也可以显示在 ABAP Workbench 的存储库浏览器中。

除了 ABAP CDS,HANA CDS 目前作为 CDS 概念的另一种变体存在。 HANA CDS 仅适用于 SAP HANA 数据库。 HANA CDS 中的实体是使用特定于 HANA 的工具(例如用于 SAP HANA 的 SAP Web IDE)开发的,而不是使用 ABAP 开发工具 (ADT)。

 

ABAP CDS 在7.55有比较大的更新的更多相关文章

  1. HANA CDS与ABAP CDS

    如果你在网络或者SCN上面搜索CDS,即SAP的Core Data Services,你会很容易地找到类似“Core Data Services(CDS)是一个在SAP HANA中用于定义和消费富语义 ...

  2. 使用PlanViz进行ABAP CDS性能分析

    如管理学学者彼得·德鲁克所说:你无法管理你不能衡量的东西( If you can't measure it, you can't manage it).要对已有程序进行性能优化,首先要对它的运行状况做 ...

  3. 教程:基于访问控制的ABAP CDS视图权限

    Hi! 对每一个CDS视图,我们都可以通过DCL(Data Control Language)定义访问控制.在这篇文章中,我会介绍ABAP CDS视图中非常重要的一面:权限管理. 本文的阐述基于我正在 ...

  4. CDS测试框架介绍:如何为ABAP CDS Entities写测试

    动机 现在大家都知道单元测试对我们代码的好处.并且我们都承认它是开发过程中不可或缺的一部分.但是在把代码切换到数据库的模式下的时候,我们被粗暴地打回了软件测试的黑暗年代...我们现在面临着逻辑下推到A ...

  5. ABAP CDS Table Function介绍与示例

    Core data services(以下简称CDS)可以指两样东西,一个是HANA CDS,一个是ABAP CDS. 如我们所知,HANA CDS只支持HANA数据库,ABAP CDS理论上支持多种 ...

  6. 【ABAP CDS系列】ABAP CDS中的系统信息

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP CDS系列]ABAP CDS中的系统 ...

  7. ABAP CDS 替换对象(Replacement Objects)引起的数据错误

    最近遇到了一个诡异的问题:从CDS视图中取得的数据,和从透明表中取得的数据,会有不同的值.在这里记录下问题的表现和解决方案,以供参考. 系统版本:S/4HANA OP1610 涉及表:MCHB 本文链 ...

  8. 使用ABAP CDS视图创建服务

    介绍本文介绍使用ABAP Core Data Services创建OData服务的最快方法. 给出了有关@ OData.publish注释利用率,对数据源CDS实体的引用和从DDIC结构导入的详细信息 ...

  9. ABAP CDS ON HANA-(11)ABAP CDSでの関連付け

    Association in ABAP CDS An association in CDS view joins different data sources. Defining and using ...

  10. ABAP CDS ON HANA-(5)テーブル結合ビュー

    JOINs in CDS View In ABAP CDS, Join between two data sources is allowed. Allowed joins are:- Inner J ...

随机推荐

  1. Oracle的md5

    CREATE OR REPLACE FUNCTION MD5(passwd IN VARCHAR2) RETURN VARCHAR2 IS retval varchar2(32); BEGIN ret ...

  2. KingbaseES角色和权限介绍

    KingbaseES 使用角色的概念管理数据库访问权限.为了方便权限管理,用户可以建立多个角色,对角色进行授权和权限回收,并把角色授予其他用户. 数据库初始化时,会创建一个超级用户的角色:system ...

  3. pymysql连接、关闭、查询,python如何操作mysql数据库

    1 def get_conn(): 2 """ 3 :return: 连接,游标 4 """ 5 # 创建连接 6 conn = pymys ...

  4. 谈谈MyBatis持久层框架

    谈谈 MyBatis 源自官方文档:MyBatis 是一款优秀的持久层框架,它支持自定义 SQL.存储过程以及高级映射.MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作. ...

  5. 【已解决】linux环境jps命令不显示进程

    2021-09-28 10:26:42 问题描述: 输入jps后不显示进程 解决办法 1. cd /tmp/hsperfdata_root/ 2. ls 如果是空的 3. rm -rf hsperfd ...

  6. 学习Source Generators之输出生成的文件

    上一篇文章学习了通过获取和解析swagger.json的内容,来生成API的请求响应类. 但是其中无法移动与编辑. 那么本文将介绍如何输出生成的文件. EmitCompilerGeneratedFil ...

  7. #线段树,倒序#CF356A Knight Tournament

    题目 分析 要求覆盖必须是第一个覆盖的, 考虑最后一个覆盖的很简单做线段树区间赋值, 那么倒序区间赋值就可以了 代码 #include <cstdio> #include <ccty ...

  8. 驾驭数据的能力,如同使用ChatGPT一样,是现代职场人的必修课

    现代职场所比拼的除了聪明才智.过往经验之外,很多软性技能也尤为重要. 现在已经不是像网络游戏开局拿着一根小木棍打天下的时代了,这将是一场武装到牙齿的较量,对于各类"装备"的驾驭能力 ...

  9. Qt加Opencv实现 梯度矫正 功能

    废话: 有时候我们是从物品的斜上方拍摄的图片,看起来不直观,需要把视角拉正,这样的一个操作就叫做 梯度矫正,需要用到的技术是 Opencv 的 透视变换. 这个只是一个简单的演示demo,如果完善一下 ...

  10. centos-stream-9 centos9 配置国内yum源 阿里云源

    源配置 tips: yum配置文件路径 /etc/yum.repos.d/centos.repo 1.备份源配置 [Very Important!] mv /etc/yum.repos.d/cento ...