在 SAP S/4HANA 或 SAP BTP ABAP environment 里完成一个分析模型之后,开发工作其实还没有真正结束。
Cube 已经建好了,Dimension 已经关联好了,Measure、Currency、Unit、Hierarchy、Exception Aggregation 也都已经定义完成,甚至最上层的 Analytical Query 已经能够在开发环境里正常执行。但此时 SAP Analytics Cloud、Multidimensional Analysis App 或其他分析客户端仍然无法直接消费这些对象。
中间还缺少一个非常关键的环节,也就是 Business Service Exposure。
这个环节负责把 ABAP CDS 世界里的分析模型转换成应用能够消费的业务服务。SAP 在 ABAP Cloud 中并没有为 Analytics 单独设计一套完全不同的服务发布体系,而是让 Analytical Service 与 Transactional Service 共用相同的 Business Service 架构,也就是 Service Definition 加 Service Binding。
这一点非常重要。
无论我们正在开发一个 RAP 事务应用,还是开发一个基于 Cube 和 Analytical Query 的 Embedded Analytics 应用,最终都要经历服务定义和服务绑定这两个阶段。区别主要落在暴露的业务语义和通信协议上。
事务型 RAP Service 常见的是 OData V2 或 OData V4,而 ABAP Analytics 的典型消费协议则是 InA,也就是 Information Access。