定义基本 CDS 视图
学习目标
创建数据定义。
维护 FROM 子句和元素列表。
创建数据定义

要创建新的数据定义,请执行以下操作:
右键单击项目 浏览器 中的项目。
选择 新建 → ABAP 资源库对象…
从列表中选择 核心数据服务 → 数据定义 。
提示
您可以使用项目下的输入字段输入搜索词,例如**
数据定义**
选择 下一步 。
输入现有包的名称,以及新数据定义的名称和描述。
提示
如果输入数据库表的名称或 CDS 视图实体的名称作为参考对象,则新视图将从该参考对象中读取所有字段。

如果包已包含数据定义,则可以使用以下快捷方式:
在项目浏览器中,展开收藏包的子节点 核心数据服务 → 数据定义 。
右键单击 数据定义 并选择 新建数据定义 。
数据定义模板

创建新的数据定义时,可以从空白页 开始。或者,您可以使用多个可用模板之一作为起点。定义简单视图时建议的模板为定义视图实体。
通常,将新数据定义分配到传输请求后,会显示相应的对话框。但您始终可以在编辑流程的稍后返回到模板选择。

要稍后选择模板,请在编辑器窗口下的标签条中转到" 模板 "标签 。
注意
您可以在编辑器首选项中定义自己的模板。转到 →WindowPreferences 并搜索 "Data Definition Templates"。
FROM 子句

CDS 视图从不单独存储数据。它始终参考从中读取数据的一个或多个数据源。
CDS 视图的数据基础在关键字 FROM 之后的 define 语句中指定。可在此处指定数据库表和其他 CDS 视图。
提示
当您按 **
Ctrl + 空格**键使用代码完整化输入数据源时,编辑器仅建议适合作为数据源的开发对象。
元素列表
元素列表
播放视频以了解元素列表。
视频:本节含 SAP 官方视频(视频 ID
1_q1kwaz18),需在 learning.sap.com 在线观看。

关键字 KEY 使视图元素成为 views 键的一部分。关键元素必须放在元素列表开头的一个块中。
对于 CDS 视图,不必定义键值,但强烈建议这样做。如果视图不包含至少一个关键元素,您将看到来自语法检查的警告。
如果 CDS 视图的键值与其数据源的键值不匹配,则会出现另一个警告。可能存在忽略此警告的原因,但视图的键值通常应与数据源的键值相同。但有一个常规异常:如果数据源是具有客户端字段的数据库表,则此客户端字段不应是视图元素列表的一部分。
使用 AS 附加,您可以定义元素的名称。如果元素只是数据源的字段,则 AS 附加项是可选的。在这种情况下,名称与数据源中的名称相同。
提示
在数据库表中,字段名称不区分大写和小写。CDS 视图从数据库表中读取时,通常通过引入由大小写字符混合组成的别名(混合大小写)来提高可读性。在此示例中,employee_id 变为 EmployeeID,first_name 变为 FirstName。

您可以按 **Ctrl + 空格**并选择插入所有元素,而不是逐个添加数据源的字段。此模板不仅将数据源的所有字段(客户端字段除外)添加到元素列表,它还会接管键值定义并为所有字段建议混合大小写别名。
注意
使用数据库表或 CDS 视图作为参考对象创建 CDS 视图时,缺省情况下应用插入所有元素模板。
DDL 格式程序和注释

我们在数据定义中使用的语法称为 CDS 数据定义语言 (DDL)。要提高可读性,可以让 ADT 格式化 DDL 源。将光标放在数据定义中的某个位置,然后从 Eclipse 菜单中选择源代码→格式或按 Ctrl + F1。
缺省情况下,Eclipse 使用从 ABAP 系统派生的标准格式化程序参数文件。您可以在 Eclipse 首选项对话框中定义自己的格式化程序参数文件。从 eclipse 菜单中选择 窗口→首选项 ,然后搜索 DDL Formatter。
CDS DDL 中的注释
播放视频以了解 CDS DDL 中的注释。
视频:本节含 SAP 官方视频(视频 ID
1_l2306891),需在 learning.sap.com 在线观看。
如何定义基本 CDS 视图
播放视频,了解如何定义基本 CDS 视图。
视频:本节含 SAP 官方视频(视频 ID
1_3caxy0gx),需在 learning.sap.com 在线观看。
定义基本 CDS 视图
您想要分离数据访问和表定义。为此,定义读取以下数据的 CDS 视图实体:
模板:
不适用
解决方案:
/LRN/R_EMPLOYEE(数据定义)
前提条件
在本练习中,您需要先前练习中创建并填写的员工数据的数据库表(建议名称为 Z##EMPLOY,其中 ## 是您的组编号)。如果尚未完成该练习,请创建数据库表 /LRN/EMPLOY_DEP 的副本。
任务 1: 定义 CDS 视图实体
定义从含员工数据的数据库表中读取的新 CDS 视图实体(建议名称:Z##_R_Employee,其中 ## 是您的组编号)。使用将所有表字段添加到视图元素列表的模板(客户端字段、年薪和货币代码除外)并从数据库表中接管键值定义。
步骤
在您自己的包中,创建新的数据定义(建议名称:
Z##_R_EMPLOYEE,其中##是您的组编号)。将数据库表指定为参考对象,然后选择定义视图实体模板以生成定义语句、某些标准注释和元素列表。在项目浏览器视图中,右键单击数据库表定义
Z##EMPLOY以打开上下文菜单。从上下文菜单中,选择新建数据定义。
确认包字段包含包的名称,并且参考对象字段包含数据库表定义的名称。
在名称字段中,输入 CDS 视图实体的名称(
Z##_R_Employee,其中 ## 是您的组编号)。在描述字段中输入**
员工(实体)**,然后选择下一步。确认传输请求,然后选择下一步。
警告
确保尚未选择完成。如果执行此操作,则无法选择要使用的模板。
从模板列表中,选择定义视图实体,然后选择完成。
暂时注释元素
AnnualSalary和CurrencyCode。选择两个代码行,然后按
Ctrl + <在每行的开头添加两个斜线符号 (/)。应用源代码格式设置。
从 eclipse 菜单中选择 源代码→格式 。或者,选择
Shift + F1。激活数据定义。
按
Ctrl + F3激活开发对象。
任务 2: 分析 CDS 视图实体
分析数据库中 CDS 视图实体的技术实施并测试结果。
步骤
显示用于在数据库中创建视图实体技术表示的 SQL 语句。
右键单击数据定义源代码中的任意位置,然后选择显示 SQL CREATE 语句。
打开 CDS 视图的数据预览。
右键单击数据定义源代码中的任意位置,然后选择打开方式→数据预览。或者,将光标置于数据定义源代码中的任意位置,然后按
F8。