在 ADT 里创建普通 CDS view entity 时,我们已经形成了一套非常稳定的思维习惯。定义数据源,写 select from,声明字段、association 和 annotation,激活 CDS,底层 SQL 交给 SAP HANA 执行。
到了 CDS custom entity,这套思维突然不完全成立了。
代码里仍然能够看到熟悉的 CDS element、数据类型、association 和 annotation,却找不到 select from。继续往下追,会发现真正负责读取数据的代码跑到了一个 ABAP class 里。再往 RAP runtime 追踪,请求最终进入 IF_RAP_QUERY_PROVIDER~SELECT。数据甚至可以完全不来自 SAP HANA,而是来自远程 OData service、RFC、BAPI、LiveCache,或者某个只能通过 ABAP API 访问的数据源。
这正是 Custom Entity 最有价值的地方。
它仍然属于 CDS data model,但不再要求数据一定能够通过 SQL 描述。
SAP 官方把 CDS custom entity 定义为一种 non-SQL CDS entity,它本身不包含针对底层数据源的 SELECT,实际 query 由 ABAP class 实现。官方同时将 custom entity 归类为 transient entity。Transient entity 不会在 SAP HANA 上生成对应的数据库 artifact,也不能作为
订阅专栏 解锁全文
39





被折叠的 条评论
为什么被折叠?



