、
应该是拍摄于鹿回头
原文地址
https://www.ut163.com/fiori_learning_arrangement/sap-cds/enhance_or_expand_cds_view/
增强或扩展CDS视图
EXTEND VIEW说明
元素清单
社团协会
GROUP BY子句(自7.51版开始)
UNION(ALL)语句(自7.51版开始)
视图扩展的建议和限制
建议:
限制条件:
批注视图增强类别
#没有
#PROJECTION_LIST
#通过…分组
#联盟
在对标准CDS视图需要扩展字段或者一些功能时,我们可以考虑对标准的CDS进行EXTEND VIEW定义,也就相当于对标准CDS视图的增强,主要可用于扩展字段,如下
CDS视图扩展是通过DDL语句EXTEND VIEW在专用DDL源中定义的。
每个具有CDS视图扩展名的DDL源均定义两个对象:实际的CDS视图扩展名和追加视图。这对应于由标准DDL定义的两个对象。CDS视图和SQL视图。
可以在HANA Studio 创建EXTEND VIEW.
专用模板可用于创建视图扩展的定义。创建DDL源之后,必须指定要扩展的CDS视图的名称,新的CDS实体(视图扩展)的名称以及SQL视图附加的名称。
在此示例中,CDS视图S4d430_Extend_Target _A在元素列表中包含六个元素。CDS视图扩展Z4d430_Extend_View_A将字段airpfrom和airpto添加到此列表。
两个DDL源之间的链接是通过关键字EXTEND VIEW之后的CDS视图名称建立的。
注意: 无法在此处指定SQL视图的名称,也就是说标准的视图名在这里是修改不了的,只能修改DDL的名字。
1.EXTEND VIEW说明
1.1.元素清单
文字,字段,表达式,函数
输入参数
路径表达式
聚集(从7.51开始,仅在目标已经包含聚集的情况下)
1.2.社团协会
View Extension可以添加关联
1.3.GROUP BY子句(自7.51版开始)
仅当目标视图包含GROUP BY子句时
强制非聚合的新元素
1.4.UNION(ALL)语句(自7.51版开始)
如果目标视图包含UNION(ALL)语句,则必须提供
需要相同数量的UNION(ALL)语句
像传统的追加视图一样,CDS视图扩展可以将元素添加到SELECT列表中。新的事实是扩展视图还可以定义其他关联。例如,可以使用它来定义与特定于客户的数据库表或CDS视图的关联。
注意: CDS View Extend可能包含关联,但不包含直接联接。
从7.51版开始,还可以扩展包含聚合和/或UNIONS的视图。但是要这样做,目标视图必须通过注释AbapCatalog.viewEnhancementCategory主动允许这样做。
在上面的示例中,CDS视图S4d430_Extend_Target _B CDS视图使用CDS视图扩展Z4d430_Extend_View_B进行了扩展。
此视图扩展不仅扩展了字段列表。它还向表机场添加了两个关联。
注意:视图扩展也可以直接使用新的关联,而不是直接使用关联数据源的字段。
在上面的示例中,CDS视图S4d430_Extend_Target_C包含两个与UNION语句链接的SELECT语句。每个SELECT语句在元素列表中都有一个聚合表达式,并具有一个相应的GROUP BY子句。
CDS视图扩展Z4d430_Extend_View_C反映了此结构。它包含两个SELECT语句的扩展名,并与关键字UNION链接。
在两个SELECT语句中,扩展名都将字段city和country添加到元素列表中,并相应地扩展GROUP BY子句。
注意: 仅当扩展视图通过注释@ AbapCatalog.viewEnhancementCategory明确允许时,才可以使用GROUP BY和UNION进行扩展。
2.视图扩展的建议和限制
2.1.1.建议:
(客户)存储库对象的命名空间(DDL源和SQL Append视图)
其他元素和关联的名称不常用(以避免以后发生冲突)
基础软件包中的CDS视图
从基础软件包扩展CDS视图之前,请联系SAP。
2.1.2.限制条件:
运输后不重命名
首次传输DDL源后,不能更改CDS View Extend和SQL Append View的名称
没有其他关键字段
CDS视图扩展中不允许使用前缀KEY
扩展CDS视图时,建议仔细选择存储库对象和其他实体的名称,以避免将来升级时发生冲突。建议将其他存储库对象放在适当的命名空间中。另一个是指附加元素列表条目和关联。通过使用非常通用的名称,您与以后在标准中添加的名称会增加发生冲突的风险。
注意:对于将字段追加到透明表中,建议的命名空间为ZZ。CDS View扩展不存在此类名称空间
与一般的CDS视图一样,建议但并非强制性的是,对DDL源和CDS实体使用相同的名称。
最重要的限制还涉及命名:从开发系统传输DDL Source后,SQL Append View和CDS View Extend的名称是固定的,不能再更改。
2.1.3.批注视图增强类别
注释AbapCatalog。viewEnhancementCategory
限制CDS视图的可扩展性
以方括号括起来的值列表,以逗号分隔
可能的值
#没有
#PROJECTION_LIST
#通过…分组
#联盟
允许的组合
#NONE不能与其他值组合
#GROUP BY和#UNION要求#PROJECTION_LIST
默认值
#PROJECTION_LIST
从7.51版开始,CDS视图的可扩展性可能会受到注释AbapCatalog.viewEnhancementCategory的限制。
注释可以与方括号中的逗号分隔值列表一起使用。存在以下值:
2.1.4.#没有
不允许扩展。该值不能与其他值组合。
2.1.5.#PROJECTION_LIST
允许SELECT列表的扩展名和其他关联;必须允许使用其他值的SELECT列表包含聚合表达式或具有UNION子句的CDS视图扩展。
2.1.6.#通过…分组
允许将聚合的或非聚合的元素添加到具有聚合表达式的SELECT列表中,并且还允许GROUP-BY子句的关联扩展名。
只能与#PROJECTION_LIST一起指定。
2.1.7.#联盟
允许扩展带有UNION子句的CDS视图的SELECT列表。只能与#PROJECTION_LIST一起指定。
如果使用的注释没有方括号,或者根本没有注释,则视图的可扩展性就好像已使用值#PROJECTION_LIST指定了注释。
延伸检视
如果此特定CDS视图有任何扩展,则可以直接在DDL源中看到它。
如果一个或多个CDS视图扩展指向此CDS视图,则DEFINE VIEW语句的左侧会出现一个螺旋形符号。将指针放在该符号上时,将打开一个对话框,其中列出了现有扩展名。通过单击列表中CDS视图扩展的名称来打开其定义。
推荐阅读:
《ABAP新语法1》
《关于 SM30/VIEW_MAINTENANCE_CALL锁整张表问题》
《使用cl_gui_docking_container 实现多ALV》
《DEMO:S/4 1809 FAGLL03H 增加字段增强》
《几个ABAP实用模板,体力活就别一行行敲了,复制粘贴得了》
《SAP Parallel Accounting(平行分类账业务)配置+操作手册+BAPI demo程序》
《CC02修改确认日期BAPI:Processing of change number was canceled》《我是怎样调试BAPI的,以F-02为例》
《苏州游记》
《杂谈:几种接口》
《RESTful DEMO 一:SAP 如何提供 RESTful Web 服务》
《DEMO search help 增强 ( vl03n KO03 等)》
Debug 系列