本文阅读目录
- SAP S/4HANA VDM 中 CDS View 的简单分类
- CDS View 的 Stability Contracts
- 如何查看 CDS View 的 Stability Contract
SAP S/4HANA 的 Virtual Data Model (VDM) 构成了系统数据访问的核心基础,承载了不同类型应用程序和 API 实现的关键功能。
无论是 SAP S/4HANA 中的事务型应用程序(Transactional Application),还是分析型应用程序(Analytical Application),VDM 都为其提供了强有力的支持。
SAP S/4HANA 的 On-Premise 版本和 Cloud 版本,VDM 都是通过 CDS(Core Data Services)View 实现。
这些 CDS View 严格遵循一致的建模和命名规则,以业务语义为基础,将存储在数据库表中的业务数据暴露给消费者使用。
传统的 ERP 产品里,由于历史原因,数据库表名称和字段名称,在外人眼中看来如同天书。而 VDM 中 CDS View,其基于语义的模型设计,同传统 ERP 数据模型比较,不但大大提高了模型的可读性,而且确保了数据访问的一致性和可重用性。
组成 SAP S/4HANA VDM 的 CDS View,按照其归属的设计层级,可以笼统地分为 Reuse Layer 和 Comsumption Layer 两种类型。
Reuse 层的 CDS View 是 SAP S/4HANA 中最基础的视图,从语义上讲,它们代表了系统中关键的业务对象(Business Object)、技术对象和配置对象的某个节点。
举例来说,名为 I_SalesOrder 的 CDS View 代表了业务对象 Sales Order 的根节点,而 I_SalesOrderItem 则表示 Sales Order 的行项目节点,以此类推。
在 Reuse 层中,CDS View 又进一步分为四小类,每一类都有其独特的功能和用途。
1. Basic Interface Views
Basic Interface Views 是直接基于底层数据库表创建的,是 SAP S/4HANA VDM 中唯一直接访问数据库表的视图。
这类视图的主要作用有两个。
首先,ERP 时代遗留下来的数据库表(如 VBAP 和 VBAK 这些),在外行看来可能晦涩难懂。
通过 Basic Interface Views,这些复杂的数据库表名称和字段名称,得以按照业务语义重命名,使其变得更易于理解。
其次,Basic Interface Views 通过附加元数据,比如添加注解或维护与其他视图之间的关系的方式,丰富了从传统数据库表派生的数据模型,从而为 VDM 中更高级别的 CDS View 的使用做好了准备。
比如 I_SalesDocumentBasic 就是一个典型的 Basic Interface 视图。
它通过下图第三行的注解 @VDM.viewType: #BASIS 标注其类型为 Basic View,数据直接从底层数据库表 VBAK 读取,并通过 association 定义了与其他 Basic Interface Views 的关联关系。
2. Basic Restricted Reuse Views
Basic Restricted Reuse Views 与 Basic Interface Views 类似,但其名称 Restricted Reuse 表明,这类视图不适合由客户和合作伙伴重用,仅限于 SAP 内部的产品开发使用。
3. Composite Interface Views
Composite Interface Views 基于 Basic Interface Views 构建,并且还可以与其他 Composite Interface Views 关联,从而将业务相关但维度不同的数据,汇总到同一张视图里,形成新的语义实体,方便更上层的视图使用。
这类视图一个典型的例子就是用来定义 Analytical Cube View.
Composite Interface Views 也不会直接访问数据库表,而是通过 Basic Interface Views 间接访问数据。
这类视图通过注解 @VDM.viewType:#COMPOSITE 来定义。
下面是一个例子。
4. Composite Restricted Interface Views
同 Composite Interface Views,但仅由 SAP 内部开发使用。
CDS View 的 Stability Contracts
从二次开发的角度讲,上述介绍的 Basic Interface Views 和 Composite Interface Views,并未全部开放给客户和合作伙伴。
为了在 SAP 产品开发和持续优化领域,实现产品的灵活性和功能可扩展性(Flexibility & Extensibility),同确保 CDS View 的语义和业务功能的稳定性这二者间,取得最佳平衡,SAP 引入了 Stability Contracts(稳定性合约)的概念。
SAP 官方文档中详细说明了这一概念,具体请参阅如下链接。
每个 Contract 定义了 CDS View 的不同消费场景。
目前存在分别针对 Extensions,System Internal Use 和 Remote API Use 三种场景的稳定性合约。
如果一张 CDS View 的 Extensions 稳定性合约状态值,已经标注为已发布状态(Released),客户可以放心大胆的使用 SAP 提供的扩展工具,在这张视图上添加自己的扩展字段,而无需担心 SAP 将来的系统升级对该视图的内部改动,会影响到自己已经创建的扩展字段。
如何查看 CDS View 的 Stability Contract
在 ABAP Development Tool 的 API State 中,可以查看某个 CDS View 的 Stability Contract 状况。
比如我选中某张视图,查看其针对 Use System-Internally(供系统内部使用) 这个使用场景的 Contract 情况。该 Contract 的主要目标是,声明视图在系统内部进行二次开发场景下的稳定性。所谓系统内部使用,是相对于下一级即 C2(Use as Remote API )比较而言的。
当 Use in Key User Apps 标记为 Yes 时(如上图所示),表明该 CDS View 可以用来检索数据或作为创建自定义开发的基础,能够在各种 Key User 工具(如自定义 CDS View 应用程序)中使用。
另一方面,当 Use in Cloud Development 被标记为 Yes 时,意味着该视图可以在 SAP S/4HANA Cloud ABAP 环境中重用。
Remote API Use 则是 CDS View 的另一种典型的使用场景。
SAP Business Accelerator Hub 里提供了可以用来进行系统集成的 API 列表,不少 API 通过 OData 方式进行消费,而这些 OData 后台的技术实现则基于 CDS View.
这些用来构建稳定的 CDS View,必须符合 Use as Remote API 的 Contract 规定。
笔者后续会介绍如何在 SAP S/4HANA Fiori 界面上,查看和检索 VDM 内包含的各种 CDS View 的明细。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。