在 SAP 的 ABAP CDS 中,该define view
语句用于创建 CDS 视图。该对象有一个 CDS 实体名称,这就是它在编辑器和包中的显示方式,但它也有一个AbapCatalog.sqlViewName
必须不同的注释。语法的文档define view
有一些信息:
为使用 DEFINE VIEW 定义的 CDS 视图(ABAP CDS)创建了两个对象。必须为两个对象中的每一个指定一个名称:
CDS 数据库视图的名称CDS_DB_VIEW必须在注解@AbapCatalog.sqlViewName 后用引号指定。ABAP 字典视图的常用规则适用于此名称,并且不区分大小写(在内部转换为大写字母)。关联的 SQL 视图在数据库上以该名称创建。
CDS 实体的名称 cds_entity在关键字 DEFINE VIEW 之后定义(DEFINE 是可选的)。不需要指定引号。此名称遵循 CDS 数据库视图的规则,但长度可以为 30 位。
这两个名称都位于 ABAP 字典中数据类型的命名空间中,并且每个名称都必须是唯一的。这两个名称可用于其他 DDL 语句或 ABAP 程序中以访问 CDS 视图。
它提到了一些其他差异,例如实体在 SAP 的数据字典工具(SE11、SE16)中不可用以及从实体中选择始终以严格模式运行的事实,但关键是:
在 CDS 的 DDL 和 ABAP 中,可以将 CDS 视图寻址为 CDS 数据库视图CDS_DB_VIEW和 CDS 实体 cds_entity。但是,强烈建议只使用 CDS 实体。
当我在一个简单的查询中运行两者时,我注意到从实体中选择时没有 MANDT 列,但从CDS 数据库视图中选择时存在此列。
那么,开发人员在使用 CDS 视图时应该牢记数据库视图和 CDS 实体之间的真正区别是什么?