CDS从入门到精通–2视图的类型

在这里介绍不同类型的CDS视图,这里算是了解CDS的进价篇。如果您不熟悉CDS,则可以从此处查看CDS视图的基础知识。

1.视图介绍

从开发者角度看,CDS有三种视图

  • Basic–基本视图,此视图一般直接从透明表中查询数据,通常定义为查询视图,命名时,通常为**_Q_**
  • Composite–综合视图,此视图大多时候会生成BOPF,就是会包含业务逻辑处理,大多也直接与表关联,由于常用会提供给后面的消费视图使用,所以常用此类视图定义为接口视图,如是接口视图通常命名为:**_I_**,也可能是一些复杂的基于接口接口视图的分析类视图,所以会出现用**_Q_**命名。
  • Consumption–消费视图,通常是生成提供ODATA消费使用,也就给外部UI使用的,所以此视图一般会基于接口视图来生成新视图。此视图可用*_C_**命名。
CDS从入门到精通--2视图的类型 - 第1张  | 优通SAP

所以通常开发视图过程通为如下顺序。

CDS从入门到精通--2视图的类型 - 第2张  | 优通SAP

图中可看出:

1.BOPF的视图,直接基于TABLE中生成创建,视图名:**_I_**;

2.ODATA服务的视图基于BOPF的视图创建,视图名:**_C_**;

3.视图的命名规则只是建议,可自己用其它规则命名,SAP中好多视图也是安此规则命名的,

4.在第2步中,中基于TABLE生成的CDS视图,也可以是查询,此时命名可以是:**_Q_**;

2.基本视图

以下是一个例子,需要虚拟数据模型中创建开发多个基于BASIC接口的视图,这些基本视图将具有注释,其中一些将具有关联。

CDS从入门到精通--2视图的类型 - 第3张  | 优通SAP

虚拟数据模型中的基本视图

从技术上讲,VDM中的所有视图都定义为ABAP核心数据服务(CDS)视图。VDM中最重要的组件是“Interface”视图层。它由多个可重用的基本视图模型组成,可重用视图的定义重点在于业务语义。接口视图又分为两种视图类型。基本界面视图组合界面视图

基本视图构成CDS视图的最低层,没有冗余-即每个核心实体(例如,一个客户或销售订单)的单一表示。它是对SAP Business Suite(ECC)数据库表以及其他基本视图的简单投影。

CDS从入门到精通--2视图的类型 - 第4张  | 优通SAP
界面视图分为基本视图和复合视图

基本视图进一步分为核心实体视图,文本视图和层次结构视图。

  • 核心实体视图具有业务语义,并包含语义上属于核心实体的所有数据。独立于客户端,核心实体视图包含表示核心实体的键。核心实体视图包含与所有其他业务对象(“外部关系”)以及与其他直接相关的BO节点(如果存在)的关联(“内部BO结构”)。核心实体视图通常用于诸如SalesOrderHeader,SalesOrderItem,CostCenter和ControllingArea之类的主数据。
  • 文本视图包含特定业务实体的语言相关文本。
  • 层次结构视图包含特定业务实体的层次结构节点(包括父/子分配)。

2.1.基本界面视图规则

  • 它们公开了所有相关的业务数据。
  • 它们没有冗余。
  • 他们可以直接访问数据库表和其他基本视图。
  • 他们可以与其他基本视图相关联。

2.2.分析数据类别

  • #DIMENSION
  • #FACT
  • #CUBE
  • #HIERARCHY
  • #TEXT

基本视图的定义独立于其潜在消费者。它们以标准化的方式公开所有相关的业务数据(业务对象,代码列表等)。基本视图没有冗余,可以直接访问数据库表以及其他基本视图。可以在基本视图之间建立关联。

CDS从入门到精通--2视图的类型 - 第5张  | 优通SAP

2.3.带注释的基本视图

  • 所有注释均以@符号开头。
  • 批注允许指定ABAP特定的附加信息,例如ABAP表缓冲区应如何填充视图的记录,或者该视图是否取决于客户端。请注意,默认情况下,CDS视图被视为依赖于客户端。您不必在字段列表或联接条件中明确包括客户字段。
  • 注释用于通过其他领域特定的元数据来丰富数据模型,例如,UI, OData, search, and planning,搜索和计划。可以通过注释添加这些其他域的专用元数据,而不会影响或更改基础核心模型。域未知的注释将被域专用引擎忽略。
  • 核心注释指定影响并且与所有场景相关的元数据。
  • 专用域需要特定于域的注释,例如层次结构处理,Analytics,OData或SAPData。

2.4.具有关联的示例基本视图

CDS从入门到精通--2视图的类型 - 第6张  | 优通SAP

ABAP核心数据服务(CDS)中的关联背后的想法是,提供足够的表示形式来表示ABAP数据字典中数据模型中两个实体之间的关系。如果您将经典的实体关系模型视为有向图,则关联就是该图的边缘。

需要将这些关系表示为数据模型的一部分,以便将它们捕获在幕后存储的元数据中,并使它们可供重用。重用关联包括集成到类似SQL的查询语言中,以及将关联元数据提供给建立在ABAP数据字典的框架之上。

2.5.定义关联

CDS从入门到精通--2视图的类型 - 第7张  | 优通SAP
  • 在此关联的打开条件下,当前视图ZCDS_I_SalesOrderItem和目标SEPM_I_PRODUCT已连接。
  • 在此ON条件下,在此example_Product.ProductUUID中,始终由关联本身的名称唯一地标识目标的元素,然后由目标列的名称唯一地标识。
  • 源端的元素(即当前视图本身)可以通过其名称直接寻址,也可以通过对其进行完全限定(添加表名称)来寻址。
  • 另外,术语$ projection。可用于直接引用选择列表中的元素。在这种情况下,可以引用别名。

2.6.如何使用联想

CDS从入门到精通--2视图的类型 - 第8张  | 优通SAP

注意:在上面的“定义关联”图中,必须在视图的选择列表中显式包括在关联的ON条件中使用的所有列,在此示例中为ProductUUID和_Product.DimensionUnit。

CDS中的路径表达可以在几乎可以使用公共列或表的任何地方使用:

  • From
  • Select-List
  • Inside Aggregate Functions
  • Group By
  • Where- or Having-Condition

路径表达式不能在联接或新的关联定义的ON子句中使用。

在图“无关联的基本视图”中,您可以在Eclipse(或者HANA Studio)中预览无关联的查询数据时看到结果。字段航空公司和连接号可在数据预览中找到。您只会看到航空公司的ID代码,航空公司名称不可用,因为它不是视图的一部分。

使用SAP BusinessObjects Analysis for MS Ocece访问查询时,情况不会改变。您可以访问报告中的两个字段,但是没有其他属性可用。

CDS从入门到精通--2视图的类型 - 第9张  | 优通SAP

没有关联的基本视图

CDS从入门到精通--2视图的类型 - 第10张  | 优通SAP

与协会的基本观点

在以上图“具有关联的基本视图”中,视图Ztr_Association_Demo中的领域航空公司与视图Z00_I_Airline中的领域航空公司相关联。由于这种关联,视图Z00_I_Airline中的字段可以在视图中作为Ztr_Association_Demo属性使用。

当从Eclipse的“数据预览”功能的Ztr_Association_Demo视图中预览数据时,将无法看到其他属性。这是Eclipse中预览功能的限制。

如果您访问SAP BusinessObjects Analysis for MS Ocece中的视图Ztr_Association_Demo,则关联视图Z00_I_Airline中的字段可用作属性,并可以在报告中使用,如下一屏幕部分所示。您可以将属性“航空公司名称”添加到“领域航空公司”,并使报告更易于阅读和理解。