此博客为原创博客,都是个人工作经历所得,转载请注明出处

CDS视图篇 2

核心数据服务 (CDS)

公司希望使用 SAPS/4HANA 核心数据服务 (CDS) 视图技术。需要学习 CDS 视 图的概念和结构以及语法 。

 

  1. ● 核心数据服务是用于业务实体的 SAP 战略建模方法。
  2. ● SAP HANA 视图通过脚本式 ABAP 代码创建。
  3. ● CDS 对于更多用例(例如,搜索)而言是高度灵活的 。
  4. ● CDS 是脚本式的(含有扩展的 SQL)。
  5. ● 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 新功能包括:

  1. DDL 源文件创建
  2. 定义视图
  3. 数据源连接
  4. 聚合和 SQL 函数
  5. 语义丰富的数据模型
  6. 可扩展性

数据定义语言 (DDL) 语法规则

表 1: 数据定义语言 (DDL) 语法规则

关键字
  • 必须全部大写、全部小写或小写但首字母大写 。不允许其他大小写混合形 式。
名称
  • 名称不区分大小写 。
  • 名称最多可以有 30 个字符。
  • 名称可由字母、数字、下划线 (_) 和斜线 (/) 组 成。
  • 名称必须以字母 、斜线或下划线开头 。根据关联的命名规则 ,建议使用下划 线。使用句点 (.) 分隔含有多个部分的名称 。
  • 含有多个部分的名称可以是路径 、具有前缀数据源的列和注释 。
  • 以下 CDS 关键字不得用作名称 :ALL、AND、AS、ASSOCIATION 、 AVG 、CASE、CAST 、CROSS、COUNT、DISTINCT 、EXISTS 、EXTEND、FROM、FULL、GROUP、HAVING 、INNER、JOIN、KEY、 LEFT、MAX、MIN、NOT、NULL、ON、OR、ORDER、RIGHT、SELECT、SUM、UNION、VIEW、WHEN、WHERE
文 字
  •  数字文字必须始终完整指定 ,如有需要可使用小数点 (.) 作为十进制分隔 符。字符文字必须括在单引号 (') 中。
注释
  •  两个斜杠 (//) 或两个连字符 (--) ,直到该行结束。使用字 符 /* 和 */ 括起行内或跨多个行的注释 。
分隔符
  • 可使用分号 (;) 结束语句。这是可选的。
保护字
  • 特定关键字受到保护 ,无法用作自定义名称 。
  • 无法使用的预留名称在数据库表 TRESE中指定。

 

 

 

注意:

● 由于一部分 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

 

posted @ 2019-10-22 23:05  Rainystuday  阅读(568)  评论(0编辑  收藏  举报