ARTICLE DETAIL

资讯详情

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

从 CDS External Entity 到 HANA Virtual Table,完整理解 ABAP Outbound SQL Access 的工作流与运行时产物

从 CDS External Entity 到 HANA Virtual Table,完整理解 ABAP Outbound SQL Access 的工作流与运行时产物 在 ABAP Cloud 开发里,有一种场景很容易被传统 ABAP 开发经验带偏。我们的业务代码运行在一个 ABAP 系统里,真正需要读取的数据却不在当前 SAP HANA 数据库中,而是在另一个 SAP HANA Cloud、其他数据库,甚至另一套提供 SQL Service 的 AS ABAP 系统里。传统思路很容易想到 RFC、OData、REST API,或者直接建立某种数据库连接。但 CDS External Entity 走的是另一条路线。ABAP 程序仍旧使用熟悉的 ABAP SQLSELECT,代码表面看起来很像在访问本地 CDS Entity,底层却通过 SAP HANA Smart Data Access,也就是 SDA,把 SQL 查询联邦到远端数据库执行。SAP 官方把这种能力称为 Outbound SQL Access。CDS External Entity 在这里扮演的是远端数据库对象在 ABAP 开发模型中的代理。它不是一张由 ABAP Dictionary 管理的本地数据库表,也不是把远端数据复制到本地以后形成的缓存表,而是一个 Design Time CDS Repository Object,用来描述远端对象具有哪些字段、字段的数据类型是什么、哪些字段是 Key,以及 ABAP 世界应该如何理解这个远端对象。SAP 当前文档也明确把 External Entity 定义为一种可以让 AS ABAP 通过 SQL 访问外部数据库系统的 Persistent Entity,底层连接由 Logical External Schema 描述,并通过 SAP HANA Smart Data Access 管理。理解整套机制时,最容易混淆的是 External E
返回列表