SAP S/4HANA Virtual Data Model(VDM) 概念介绍

本文阅读目录

  • 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 的明细。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容