定义基本 CDS 视图

学习目标

  • 创建数据定义。

  • 维护 FROM 子句和元素列表。

创建数据定义

要创建新的数据定义,请执行以下操作:

  1. 右键单击项目 浏览器 中的项目。

  2. 选择 新建 → ABAP 资源库对象…

  3. 从列表中选择 核心数据服务 → 数据定义 。

提示

您可以使用项目下的输入字段输入搜索词,例如**数据定义**

  1. 选择 下一步 。

  2. 输入现有包的名称,以及新数据定义的名称和描述。

提示

如果输入数据库表的名称或 CDS 视图实体的名称作为参考对象,则新视图将从该参考对象中读取所有字段。

如果包已包含数据定义,则可以使用以下快捷方式:

  1. 在项目浏览器中,展开收藏包的子节点 核心数据服务 → 数据定义 。

  2. 右键单击 数据定义 并选择 新建数据定义 。

数据定义模板

创建新的数据定义时,可以从空白页 开始。或者,您可以使用多个可用模板之一作为起点。定义简单视图时建议的模板为定义视图实体

通常,将新数据定义分配到传输请求后,会显示相应的对话框。但您始终可以在编辑流程的稍后返回到模板选择。

要稍后选择模板,请在编辑器窗口下的标签条中转到" 模板 "标签 。

注意

您可以在编辑器首选项中定义自己的模板。转到 →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 变为 EmployeeIDfirst_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,其中 ## 是您的组编号)。使用将所有表字段添加到视图元素列表的模板(客户端字段、年薪和货币代码除外)并从数据库表中接管键值定义。

步骤

  1. 在您自己的包中,创建新的数据定义(建议名称:Z##_R_EMPLOYEE,其中 ## 是您的组编号)。将数据库表指定为参考对象,然后选择定义视图实体模板以生成定义语句、某些标准注释和元素列表。

  2. 在项目浏览器视图中,右键单击数据库表定义 Z##EMPLOY 以打开上下文菜单。

  3. 从上下文菜单中,选择新建数据定义

  4. 确认字段包含包的名称,并且参考对象字段包含数据库表定义的名称。

  5. 名称字段中,输入 CDS 视图实体的名称(Z##_R_Employee,其中 ## 是您的组编号)。

  6. 描述字段中输入**员工(实体)**,然后选择下一步

  7. 确认传输请求,然后选择下一步

警告

确保尚未选择完成。如果执行此操作,则无法选择要使用的模板。

  1. 模板列表中,选择定义视图实体,然后选择完成

  2. 暂时注释元素 AnnualSalaryCurrencyCode

  3. 选择两个代码行,然后按 Ctrl + < 在每行的开头添加两个斜线符号 (/)。

  4. 应用源代码格式设置。

  5. 从 eclipse 菜单中选择 源代码格式 。或者,选择 Shift + F1

  6. 激活数据定义。

  7. Ctrl + F3 激活开发对象。

任务 2: 分析 CDS 视图实体

分析数据库中 CDS 视图实体的技术实施并测试结果。

步骤

  1. 显示用于在数据库中创建视图实体技术表示的 SQL 语句。

  2. 右键单击数据定义源代码中的任意位置,然后选择显示 SQL CREATE 语句

  3. 打开 CDS 视图的数据预览。

  4. 右键单击数据定义源代码中的任意位置,然后选择打开方式数据预览。或者,将光标置于数据定义源代码中的任意位置,然后按 F8