ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ABAP CDS 里的非 SQL 查询,Custom Entity、RAP Query Engine 与 Analytical Query 的边界

ABAP CDS 里的非 SQL 查询,Custom Entity、RAP Query Engine 与 Analytical Query 的边界 SAP 官方的 RAP Service Consumption 场景里,有一个很能说明问题的设计。业务数据不一定来自当前 S/4HANA 系统自己的数据库表,有些字段可能来自远端 OData Service,有些字段又来自本地数据库,还有一些结果甚至需要 ABAP 应用层代码重新计算。到了这种场景,如果仍然坚持把所有数据获取逻辑塞进普通 CDS View 的SELECT里,CDS 很快就会碰到能力边界。这也正是 ABAP CDS 中 Non-SQL Based Queries 存在的原因。很多开发人员第一次接触这个概念时容易产生一个误解,认为 CDS 既然属于数据建模技术,那么所有 CDS Entity 最终都应该转换成 SQL 并在 SAP HANA 上执行。实际上并不是这样。ABAP CDS 不只是 SQL View 的另一种语法包装。随着 RAP、ABAP Cloud、Analytical Engine 等框架的发展,CDS 已经承担了越来越强的语义建模职责。一个 CDS Entity 可以描述数据库查询,也可以只描述一个数据接口的结构和语义,而真正的数据获取动作交给另外一个运行时框架完成。CDS Custom Entity就属于后者。SAP 当前的 Query Modeling 文档明确把这类机制称为 Non-SQL Based Query。它不会由通常的 ABAP SQL 数据库访问路径负责执行,而是属于特定的软件组件领域,由对应框架解释和执行。对于CDS Custom Entity来说,这个框架就是 RAP Query Engine。这里最关键的一点,是把「CDS
返回列表