SAP ABAP CDS view里的注解在ABAP后台是如何被解析的?

我们在ABAP Development Tool里编写SAP CDS view,为视图维护这些以@开头的注解,同Java Spring里广泛应用的annotation一样,都是一种为development object维护元数据的方式。

如上图所示,我维护了五个不同的注解,一旦保存,这个cds view的源代码被发送到ABAP后台,通过CL_DD_DDL_HANDLER解析,DDL此处是Data Definition Language的缩写。

这个类的ANNOTATIONS字段包含了一个内表M_ENTRIES,里面的内容即代表五个被解析出来的注解。

cds view所有支持的annotation都在这个ABAP接口定义的常量里了:

if_dd_ddl_annotations

比如下图的if_dd_ddl_annotations=>AbapCatalog_sqlViewName就代表我在CDS view源代码里申明的注解:@AbapCatalog.sqlViewName: ‘znaming‘


而ABAP Development Tool里采用文本方式编辑的ABAP CDS view,如何被ABAP后端解析的呢?通过这个CL_DD_DDL_HANDLER~GET_OBJDEF_FROM_SRC方法里的第163行parse_cds解析。

这个方法是在kernel端实现的,能高效的把文本格式的CDS view源代码解析成ABAP结构:

如下图所示:




要获取更多Jerry的原创文章,请关注公众号"汪子熙":

原文地址:https://www.cnblogs.com/sap-jerry/p/12153756.html

时间: 2024-08-23 12:57:58

SAP ABAP CDS view里的注解在ABAP后台是如何被解析的?的相关文章

使用CDS view开发SAP Marketing contact的facet追溯工具

这篇SAP社区博客里,我的一位同事介绍了SAP Marketing里contact facet数据模型的存储表: https://blogs.sap.com/2016/07/01/how-does-sap-hybris-marketing-build-the-golden-record-of-an-interaction-contact/ 主要是这两张表: CUAND_CE_IC_ROOT CUAND_CE_IC_FCET 现在我的需求是:对系统里Contact的Origin Data数据来源渠

HANA CDS与ABAP CDS

如果你在网络或者SCN上面搜索CDS,即SAP的Core Data Services,你会很容易地找到类似“Core Data Services(CDS)是一个在SAP HANA中用于定义和消费富语义数据模型的基础架构”这样的句子.在另一方面,在ABAP字典中似乎也有一种叫做ABAP CDS的东西.它们有什么关系?让我们从ABAP(还有ABAP CDS)文档的作者的视角中看看这个问题. 原文标题:CDS – One Concept, Two Flavors 本文链接:http://www.cnb

教程:基于访问控制的ABAP CDS视图权限

Hi! 对每一个CDS视图,我们都可以通过DCL(Data Control Language)定义访问控制.在这篇文章中,我会介绍ABAP CDS视图中非常重要的一面:权限管理. 本文的阐述基于我正在使用的S4/HANA 1610 on NW 7.51. 内容分为五个部分: 标准示例的访问控制. 基于PFCG权限创建一个简单的例子. 带有CUBE数据类别的CDS分析视图. CDS分析查询视图的访问控制. 权限对象的并集(UNION)或者交集(INTERSECTION). 本文链接:http://

Jerry的通过CDS view + Smart Template 开发Fiori应用的blog合集

S4/HANA里有一个新的UI框架叫做Smart template, 配合ABAP后台的CDS view技术,能够让developer以Metadata driven的方式来开发Fiori应用, 这种开发方式几乎不需要或者只需要很少量的JavaScript开发. 下面是我写在SCN上的相关13篇blog的链接: Step by Step to create CDS view through SmartTemplate + WebIDE: https://blogs.sap.com/2016/03

不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧

Jerry和SAP成都研究院一些新同事聊天时,谈到ABAP和SAP GUI这个话题.很多新同事在加入SAP成都之前,是做Java和C++开发的,习惯了Eclipse/IntelliJ IDEA/Visual Studio这些现代IDE,对于SAP GUI这个比较"复古"的IDE不太适应. 其实还有一个选择:ABAP Development Tools,最初在SAP内部称为ABAP in Eclipse.这个工具SAP在很多场合简称为ADT,本文后续部分也使用这个简称. 简单地说,SAP

ABAP CDS 替代对象(Replacement Objects)引起的数据错误

最近遇到了一个诡异的问题:从CDS视图中取得的数据,和从透明表中取得的数据,会有不同的值.在这里记录下问题的表现和解决方案,以供参考. 系统版本:S/4HANA OP1610 涉及表:MCHB 本文链接:http://www.cnblogs.com/hhelibeb/p/7346984.html 最近写了一个CDS视图: @AbapCatalog.sqlViewName: 'ZCI_TEST' @AbapCatalog.compiler.compareFilter: true @AccessCo

CDS测试框架介绍:如何为ABAP CDS Entities写测试

动机 现在大家都知道单元测试对我们代码的好处.并且我们都承认它是开发过程中不可或缺的一部分.但是在把代码切换到数据库的模式下的时候,我们被粗暴地打回了软件测试的黑暗年代...我们现在面临着逻辑下推到ABAP CDS entities后,代码要如何测试的难题. CDS Test Double Framework允许开发者们通过众所周知的ABAP Unit Test Framework自动化地测试CDS entities. 本文链接:http://www.cnblogs.com/hhelibeb/p

ABAP CDS ON HANA-(5)テーブル結合ビュー

JOINs in CDS View In ABAP CDS, Join between two data sources is allowed. Allowed joins are:- Inner Join/Join Left Outer Join Right Outer Join The post shows a simple Inner Join between data sources form SCARR & SPFLI table. In HANA studio, open ABAP

ABAP CDS ON HANA-(12)ODATA Service

Create a CDS view and we have the view type as ‘BASIC’ view To publish this as oData, add the annotation as: @OData.publish: true @AbapCatalog.sqlViewName: ‘ZFLIGHT_VW’ @AbapCatalog.compiler.compareFilter: true @AccessControl.authorizationCheck: #NOT