ABAP CDS 在7.55有比较大的更新
几年前翻译过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)。