在 ABAP 系统里完成一个 CDS View,并不代表这个数据模型已经能够被外部系统使用。
CDS View 更接近 ABAP 应用内部的数据语义模型。它可以被 ABAP SQL 查询,可以成为 RAP Business Object 的组成部分,也可以继续被其他 CDS View 组合。但当消费方离开 Application Server ABAP,情况就发生了变化。
SAP Fiori Elements 应用希望通过 HTTP 读取业务对象,SAP Analytics Cloud 希望读取分析模型,SAP HANA Cloud 希望直接访问 ABAP 管理的数据,外部 Python 程序也可能希望读取某些业务数据。
这些消费者显然不应该直接连接 SAP HANA 底层数据库,更不应该直接理解 ABAP Dictionary、CDS Association、RAP Behavior Definition 等内部技术细节。
于是,在 CDS 数据模型与外部消费者之间,需要增加一层正式的服务边界。
SAP ABAP 为此引入了 Business Service。
一个 Business Service 的核心并不是一个单独对象,而是两个 ABAP Repository Object 的组合,也就是Service Definition和Service Binding。
可以把整个架构理解为下面这条链路
Database Table ↓ CDS View Entity ↓ RAP Busines