ABAP CDS 在7.55有比较大的更新

[复制链接]
发表于 昨天 09:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
ABAP CDS 核心概念速览:DDL/SDL/BDL/DCL 与 ABAP RAP

【导语】作者基于 SAP 官方文档更新早前 CDS 译文,梳理 ABAP Core Data Services 在 AS ABAP 上的实现、与 ABAP RAP 的关系,以及 CDS 对象族(视图实体、投影视图、表函数、层次、自定义/抽象实体、RAP 对象、访问控制等)与 DDL/SDL/BDL/DCL 四类源代码。

核心观点

  • ABAP CDS 是 CDS 在 AS ABAP 的实现,支持在 HANA 等数据库上定义语义数据模型,并支撑 ABAP RAP(RESTful 编程模型)。
  • 7.55 起基于 DDIC 的 CDS 视图已过时,开发者应使用 DEFINE VIEW ENTITY 而非 DEFINE VIEW;CDS 通过 DDL(数据定义)、SDL(服务定义)、BDL(行为定义)、DCL(访问控制)四类源代码定义模型。
  • CDS 实体族:视图实体、投影视图、表函数(AMDP 实现)、层次、自定义实体、抽象实体,以及 RAP 专属的服务定义、行为定义(CDS 角色/访问控制)。
  • 开发约束:CDS 源代码只能在基于 Eclipse 的 ABAP 开发工具(ADT)中编写与激活,HANA CDS 则使用 HANA 专用工具(如 SAP Web IDE)。

适用场景
适用于 ABAP 开发从传统 DDIC/Open SQL 转向 CDS+RAP 技术栈、规划 S/4HANA 开发体系的学习与迁移场景。

关键信息
关键词:ABAP CDS、CDS DDL/SDL/BDL/DCL、ABAP RAP、视图实体、DDIC 视图(obsolete)、ADT、HANA CDS。文档基准 help.sap.com 新文档;版本分界 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)。
 


编辑提示
本文按 GEO 方法补充结构化导语、核心观点、适用场景与关键信息,并对原文机翻腔做了规范化处理,文内配图、代码与链接均原样保留。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表