ABAP CDS Development User Guide(翻译)
ABAP CDS Views
一个应用的数据是分散在若干个透明表中。使用ABAP CDS Views,你在实现ABAP代码时,可以根据相应的业务需求自定义的设置表字段。
定义ABAP CDS Views
这种视图的结构是通过指定相关的数据库表和在视图中使用的一组表字段来定义的。
一个CDS View通过已存在的数据库表或视图,或者在ABAP数据字典中的其他CDS Views,使用’DEFINE VIEW’DDL关键字声明。
NOTE:
CDS 数据库视图和CDS实体都是同一个命名空间的一部分。因此,你必须给它们分配不同的命名。
Figure 1: 在DDL编译器中定义CDS View
Example
@AbapCatalog.sqlViewName: 'CUSTOMER'
DEFINE VIEW cust_book_view_entity AS SELECT FROM scustom
JOIN sbook
ON scustom.id = sbook.customid
{
scustom.id,
scustom.name,
sbook.bookid
}
cust_book_view_entity这个CDS实体通过连接两个表来定义对数据库表scustom和sbook的投影。生成的CDS数据库视图(CUSTOMER)包含所有预定存在的顾客的id、name、booking ID。
Activating CDS Views
当一个CDS View**时,下面这些对象会被创建在ABAP数据字典:
* 实际的CDS实体
* 一个CDS数据库视图
在ABAP中访问CDS View
与常规的数据字典投影视图一样,ABAP CDS实体能被ABAP Open SQL使用。以下方法列出存储在底层数据库表中的客户预订数据。如下面清单所示,CDS实体(在这种情况下为cust_book_view_entity)用于ABAP源代码中的数据选择。
Example
CLASS cl_demo_access_cds_entity IMPLEMENTATION.
...
METHOD get_data.
SELECT id name bookid
FROM cust_book_view_entity
INTO TABLE @DATA(result_data)
WHERE ... .
ENDMETHOD.
...
ENDCLASS.
CDS的过程和体系结构概述
下图将视图构建体系结构的主要组成部分结合在一起,并显示了构建视图过程中涉及的最重要的活动。在基于Eclipse的IDE中使用向导,首先创建数据定义作为相关的开发对象。在ABAP开发工具中,基于文本的DDL编辑器用于编写源代码,您可以在其中为新的CDS视图指定数据定义。对于数据定义中定义的每个CDS视图,您将使用**过程生成恰好一个CDS数据库视图和ABAP字典中相应的CDS实体。
Figure 2:CDS view构建架构
Note
当**数据定义时,CDS实体和CDS数据库视图与数据定义形成一个统一体作为开发对象。因此,在传输数据定义之后,CDS实体和CDS数据库视图的名称不能再进行更改。要重命名这个统一的任何部分,您需要删除相应的数据定义。因此,您重新创建它并使用相关部分的新名称。