CDS视图篇 2
核心数据服务 (CDS)
公司希望使用 SAPS/4HANA 核心数据服务 (CDS) 视图技术。需要学习 CDS 视 图的概念和结构以及语法 。
- ● 核心数据服务是用于业务实体的 SAP 战略建模方法。
- ● SAP HANA 视图通过脚本式 ABAP 代码创建。
- ● CDS 对于更多用例(例如,搜索)而言是高度灵活的 。
- ● CDS 是脚本式的(含有扩展的 SQL)。
- ● CDS 与 ABAP 完全集成:生命周期、权限管理等。
ABAP中的 CDS 支持代码下推到数据库层,通过ABAP 中的 “视图实体” 简化关系数据
模型的消耗。现在,您可以从语义上定义集成到 ABAP 字典的 DDL 源对象中的丰富数据模型 。
通过开放式 SQL 中未提供的扩展视图功能(如 UNION、UNION ALL和关联)支持代码下推。
支持一个视图使用另一个视图的嵌套视图。可以在 WHERE 子句以及表达式中定义和使用视图实体
之间的关联。 CDS完全集成到 ABAP基础架构,同事可在视图实体上使用开放式 SQL。
ABAP CDS 可用于所有数据库 。与 ABAP 字典中定义的现有数据库表和视图相比 ,这些模型的实体提供 了增强访问功能 ,使其可优化基于开放式 SQL 的应用程序。
DDL 源和 CDS 实体的最佳部分是它们可由 ABAP 进行管理。这表示 CDS 实体的整个生命周期由 ABAP 变更与传输系统 (CTS) 进行控制。
Eclipse中的 ABAP 新功能包括:
- DDL 源文件创建
- 定义视图
- 数据源连接
- 聚合和 SQL 函数
- 语义丰富的数据模型
- 可扩展性
数据定义语言 (DDL) 语法规则
表 1: 数据定义语言 (DDL) 语法规则
关键字 |
|
名称 |
|
文 字 |
|
注释 |
|
分隔符 |
|
保护字 |
|
注意:
● 由于一部分 CDS 源代码当前仅包含一个语句 ,因此语句后的结束分号是可选的 。
● SELECT、select和 Select均是指定关键字的有效方式 。另一方面,seLect 和 SeLect会生成语法错误 。
● MYVIEW、myview和 myView均表示同一操作数 。
● 0.5 是有效的数字文字 ,但 .5 不是。
有关常规 ABAPCDS 语法规则的详细信息 ,
可参阅此处:https://help.sap.com/ abapdocu_750/en/abencds_general_syntax_rules.htm
语言要素 | 含义 |
DEFINE VIEW ...AS | 定义 CDS 视图 |
WITH PARAMETERS | 定义 CDS 视图的输入参数 |
SELECT [DISTINCT] ...FROM | CDS 视图的 SELECT 语句 |
INNER JOIN ...ON | SELECT 语句的内部连接 |
LEFT|RIGHT OUTER JOIN ...ON | SELECT 语句的外部连接 |
ASSOCIATION ...TO ...AS ...ON | 在 SELECT 语句中定义路径表达式的关联 |
1: | 路径表达式的属性 |
INNER ...WHERE | 路径表达式的属性 |
LEFT OUTER ...WHERE | 路径表达式的属性 |
KEY ...AS | SELECT 清单要素 |
$EXTENSION.* | SELECT 清单中的增强要素 |
WHERE ... | SELECT 语句的 WHERE 子句 |
GROUP BY ... | SELECT 语句的 GROUP-BY 子句 |
HAVING ... | SELECT 语句的 HAVING 子句 |
UNION ALL ... | SELECT 语句的 UNION 子句 |
数据定义语言 (DDL) 语法规则 - 表达式
运算符 | 含义 |
MAX、MIN、AVG、SUM、COUNT | SELECT 语句中的聚合表达式 |
+、-、*、/ | 运算符 |
CASE、WHEN、THEN、ELSE、END | 条件区分 |
CAST | SELECT 语句中的转型表达式 |
=、<>、<、>、<=、> =、BETWEEN、LIKE、 IS NULL、NOT、AND、OR | SELECT 语句中的关系表达式 |
数据定义语言 (DDL) 语法规则 - 预定义函数
函数 | 含义 |
ABS、CEIL、DIV、DIVISION、FLOOR、 MOD、ROUND | SELECT 语句中的数字函数 |
CONCAT 、CONCAT_WITH_SPACE 、 INSTR 、LEFT、LENGTH、LPAD 、LTRIM 、 REPLACE、RIGHT、RPAD 、RTRIM、SUBSTRING | SELECT 语句中的字符串函数 |
BINTOHEX、HEXTOBIN | SELECT 语句中的字节字符串函数 |
COALESCE | SELECT 语句中的合并函数 |
UNIT_CONVERSION、CURRENCY_CONVERSION、DECIMAL_SHIFT | SELECT 语句中的转换函数 |
DATS_IS_VALID、 DATS_DAYS_BETWEEN、 DATS_ADD_DAYS、 DATS_ADD_MONTHS |
SELECT 语句中的日期函数 |
TIMS_IS_VALID | SELECT 语句中的时间函数 |
TSTMP_IS_VALID、 TSTMP_CURRENT_UTCTIMESTAMP、 TSTMP_SECONDS_BETWEEN、 TSTMP_ADD_SECONDS |
SELECT 语句中的时戳函数 |
有关 ABAPCDS 语言要素的详细信息 ,可参阅此处:https://help.sap.com/ abapdocu_750/en/abencds_language_elements.htm
数据定义语言 (DDL) 语法规则 - 关键字和附加 语言要素 含义
语言要素 | 含义 |
EXTEND VIEW ...WITH | 通过 CDS 视图增强增强 CDS 视图 |
有关 ABAPCDS 语言要素的详细信息 ,可参阅此处:https://help.sap.com/ abapdocu_750/en/abencds_language_elements.htm