乐趣区

关于sap:SAP-Fiori-Elements-公开课第三单元学习笔记-OData-和注解深入讲解

课程地址

很多 SAP 从业者反映,open SAP 上的视频,因为网络起因无法访问,所以我会陆续在我的集体微 信 号“汪子熙”下面,把这些视频配上中文字幕并公布进去,敬请关注。

本单元的话题是 SAP OData 和注解的深刻解说。

上面是本单元视频解说的中文字幕,均由 Jerry 人工翻译而成。

====

欢送大家来到 Open SAP Fiori Elements 公开课第三单元。本单元介绍 OData 和注解

我是 Stefan Engelhardt, 是 SAP Fiori Elements 的开发架构师

在第二单元,Marcel 曾经简略介绍了 OData. 每个 Fiori Elements 利用都须要一个 OData 服务

Fiori Elements 对 OData 服务的后盾技术栈没有特殊要求,因为 OData 协定自身就是对后盾实现细节的形象

当初咱们将深刻介绍 OData 服务的外围概念。从数据模型的元形容开始

每个 OData 服务都有其数据模型的元形容信息。屏幕左边是一个例子

咱们通常简称为 OData 元数据。在 OData url 前面加上 $metadata 即可查看其元数据

屏幕右边底部的超链接是 该 OData 元数据的残缺 url

元数据定义了业务模型及其属性

下图左边是一个 OData V4 的例子,定义了一个 Person 模型

蕴含用户名,FirstName 等字段

元数据中属性也具备进一步的定义

这些进一步的定义蕴含属性的数据类型,比方 Edm.String, 是否容许存储 null 值,字段最大长度等

形容实体与其余实体关系的字段被称为导航字段

模型的导航字段指明了模型和其导航指标模型的基数关系,即 ” 一对一 ” 还是 ” 一对多 ”

例如屏幕中名为 Trips 的导航属性,指向的指标模型 Trip,类型是 Collection, 阐明 Person 和 Trip 两个模型是一对多的关系

此外,元数据还能够蕴含简单类型,actions 和 singleton 等等的定义

Marcel 在上一个单元中曾经介绍过,OData 反对增删改查操作

让咱们来看一些例子

这里咱们能看到对一个 OData 服务发动的 HTTP 申请和响应

第一个场景是读取所有的 People. People 的类型是 Person, 定义在元数据里

HTTP 响应蕴含对应的数据集。后果列表里的第一条记录是 Russell Whyte

咱们还能够通过指定 key, 来查问某条特定的 Person 记录

把键值 russellwhyte 增加到花括号里,在响应中您能够看到, 该申请只返回了一条对应的数据

让咱们再来看看一些更简单的查问

应用 $top,只返回前两条记录。应用 $select, 只读取 FirstName 和 LastName 字段

对后果集再次过滤,条件为至多领有一条 Trip 记录,且费用超过 3000

如大家看到的,咱们能够非常灵活地结构简单查问语句

当初展现如何创立一条 Person 记录

应用 HTTP POST 申请,在申请注释中保护 Person 数据

响应返回 HTTP 201 状态码,表明数据创立胜利

为进步 Fiori 用户体验,SAP 定义了一种标准化的反对文档 Draft 版本的解决机制

有了 Draft 机制,用户对文档的编辑能够随时中断并随时持续

只有当用户实现编辑之后,文档数据才会存储到对应的数据库表里

在 SAP Fiori Elements 利用里,每当用户在编辑模式下增加或者更改信息时,Draft 版本的数据都会主动被保留

这种主动保留的申请响应,可能会蕴含一些提醒音讯,比方 SalesArea 的 sold-to party 没有保护

当 sold-to party 数据发生变化时,HTTP 响应蕴含了该 party 所有数据,以便显示在 UI 上

比方地址和联系人信息。Draft 机制使利用具备动静交互的个性

留神,Draft 机制应该通过框架提供开箱即用的反对

如果在应用程序层面从新实现整套 Draft 解决机制,工作量相当微小

上一单元 Marcel 也介绍过 OData 注解。这些注解从行为和生产形式两方面,对模型提供更多形容信息

当初我将解释 OData 注解的工作原理,并举例说明

注解是 OData 额定的元数据,格局为 XML

注解定义于 OData 和 SAP 保护的词汇表中

注解都是一些形象的定义,因而较稳固,不会频繁变动,可能被包含 SAP UI5 在内的生产端解析

SAP Fiori Elements 解析注解并生成对应的 UI 页面

看一个具体的例子:Travel App 里的 Total Price 字段

在 OData Measures 词汇表里,存在一个 ISOCurrency 注解

OData 元数据里的 TotalPrice 类型被其注解,指向指标字段 CurrencyCode

因此框架代码可能了解,TotalPrice 是一个货币金额,而 CurrencyCode 字段蕴含了货币单位

于是 Fiori Elements 在金额字段的左边显示货币单位

该注解还用于依据货币单位显示对应的小数,并保障在表格中让金额的显示也能正确对齐

注解当然还可能定义更简单的 UI 元素

例如,这些 UI 能够是通过 UI.LineItem 定义的表格

通过 UI.FieldGroup 定义的 form, 通过 UI.Chart 定义的图表等等

此外,注解还能够从行为方面来对应用程序进行形容

一个例子是在应用程序中提供增删改查等性能

比方通过注解,能够指定 Travel 模型能够被编辑,于是 Fiori Elements 在 UI 上绘制 Edit 按钮

工具栏其余按钮的显示或暗藏逻辑也以此类推

另一个场景是所谓 Side Effect 的定义

例如,当表格行我的项目级别的产品单价发生变化时,UI 须要从新从后盾读取最新的订单低头级别的总价信息

SAP 零碎后盾能够提供基于 ABAP CDS 或者 CAP CDS 的注解

或者也能够应用本地文件定义的注解。对于 UI 来说,它不关怀注解来自后盾服务器或是本地文件

CDS View 中的注解被后盾服务器翻译成 XML 格局的注解

后者被 Fiori Elements 框架解析

XML 格局的注解能够被任何类型的后盾服务器应用

这些后盾服务器能够是 SAP 传统的 ABAP 编程模型,SAP BW 和非 SAP 服务器。下图左边是 ABAP CDS 注解的一个例子

您平时对于开发工具的偏好,可能会影响您对注解类型的抉择

在 SAP Fiori Tools 中,其提供的向导式创立步骤,能帮忙咱们创立正确的注解

XML 和 CAP CDS 注解都能被 SAP Fiori Tools 反对

如果您应用 ABAP Development Tool, 能够间接在 ABAP CDS 中保护注解

生命周期治理和性能可用性同样会影响注解类型的选取

UI 我的项目本地文件提供的注解,其生命周期同应用程序统一。CDS 注解的生命周期同 OData 服务实现统一

如果咱们是在一个比拟低版本的 ABAP 服务器上开发,某些注解可能无奈被反对。如果有疑难,请查问文档

让咱们总结一下本单元的内容

咱们介绍了 OData 概念的外围局部,OData 元数据,OData 申请,以及 Draft 机制

咱们也学习了什么是 OData 注解,以及它是如何影响 Fiori Elements 利用的

当初大家能够期待下一单元的内容了。届时咱们将介绍如何搭建 Fiori Elements 利用的开发环境。感激收看本视频,下期再见

更多 Jerry 的原创文章,尽在:” 汪子熙 ”:

退出移动版