关于 SAP UI5 OData V4 模型的类型自动识别

本文涉及的产品
可视分析地图(DataV-Atlas),3 个项目,100M 存储空间
数据可视化DataV,5个大屏 1个月
简介: 关于 SAP UI5 OData V4 模型的类型自动识别

除非明确指定类型,否则属性绑定会根据属性的元数据自动确定适当的类型。 例如,绑定 {DeliveryDate} 将确定类型 sap.ui.model.odata.type.DateTimeOffset(假设元数据为此属性指定“Edm.DateTimeOffset”),但 {path : 'DeliveryDate', type : 'sap.ui.model.odata.type.String'} 使用硬编码类型 sap.ui.model.odata.type.String 代替(并且不需要元数据)。


除非开发人员对类型进行硬编码,否则无法指定格式选项或约束。


自动类型确定将考虑元数据的约束,即在非 SAP 站点“MaxLength”、“Nullable”、“Precision”和“Scale”上发布的 OData 属性 facetsInformation.


除了 OData 属性方面,还考虑使用以下 OData V4 注释来设置自动类型确定的类型约:

  • Org.OData.Validation.V1.Validation.Minimum
  • Org.OData.Validation.V1.Validation.Maximum
  • Org.OData.Validation.V1.Validation.Exclusive

这些注释用来设置 sap.ui.model.odata.type.Decimal 的对应约束:minimum, maximum, minimumExclusive 和 maximumExlusive.


目前,下列类型支持映射到命名空间 sap 中的相应类型 ui.model.odata.type:

  • Edm.Boolean
  • Edm.Byte
  • Edm.Date
  • Edm.DateTimeOffset
  • Edm.Decimal
  • Edm.Double
  • Edm.Guid
  • Edm.Int16
  • Edm.Int32
  • Edm.Int64
  • Edm.SByte
  • Edm.Single
  • Edm.String
  • Edm.TimeOfDay

所有其他类型(包括集合)都映射到泛型类型 sap.ui.model.odata.type.Raw 并只能用于 as is 访问原始模型值,但不能将其转换为用户可读的表示格式。

默认情况下,属性绑定会传递一个根据其应用的控件属性的目标类型格式化的值,例如,看下面这段代码:

<Icon src="sap-icon://message-warning" visible="{path : 'DeliveryDate', formatter : '.isOverdue'}">

上述的 XML 视图里 Icon 控件的定义会导致错误,因为 SAP UI5 类型自动识别逻辑会为 DeliveryDate 属性自动判定类型为 DateTimeOffset, 但是该类型无法将其值格式化为布尔值。

正确的做法是,将其 targetType 设置为 any,以避免类型自动识别逻辑。

<Icon src="sap-icon://message-warning" visible="{path : 'DeliveryDate', targetType : 'any', formatter : '.isOverdue'}">

挂起的绑定不会发送数据服务请求,也不会触发更改事件。 开发人员可以使用其 resume 方法恢复挂起的列表或上下文绑定。

绑定 Suspend 和 Resume的典型应用场景是:

  1. 在视图初始化时,暂时触发对视图中控件的读取请求。

在某些情况下,比如 SalesOrder 的明细页面里有一个字段叫做 Business Partner ID,我们可以使用 Value help 来查看该 SalesOrder 能够分配的 Business Partner ID 列表。


我们希望 SalesOrder 视图初始化时,并不发送 Business Partner 的 OData 数据请求,当且仅当用户使用 Value Help 时再触发。

  1. 多次修改绑定时避免中间请求

假设我们想要添加过滤器,并更改列表绑定的排序。如果绑定没有挂起,调用 filter 方法后会触发一次请求,调用 sort 方法后会触发第二次请求。

如果它被挂起,则在恢复时仅发送一个具有更新过滤器和排序标准的请求。

相关实践学习
DataV Board用户界面概览
本实验带领用户熟悉DataV Board这款可视化产品的用户界面
阿里云实时数仓实战 - 项目介绍及架构设计
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3&nbsp;)前置知识要求 &nbsp; 课程大纲 第一章&nbsp;了解数据仓库概念 初步了解数据仓库是干什么的 第二章&nbsp;按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章&nbsp;数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章&nbsp;采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章&nbsp;用户行为数据仓库 严格按照企业的标准开发 第六章&nbsp;搭建业务数仓理论基础和对表的分类同步 第七章&nbsp;业务数仓的搭建&nbsp; 业务行为数仓效果图&nbsp;&nbsp;
相关文章
|
5月前
|
存储 安全 测试技术
使用 Visual Studio Code 创建 SAP UI5 项目遇到 self-signed security certificate 相关问题
使用 Visual Studio Code 创建 SAP UI5 项目遇到 self-signed security certificate 相关问题
|
4月前
|
Dart Serverless Android开发
Flutter 单线程模型保证UI运行流畅
Flutter 单线程模型保证UI运行流畅
66 0
|
5月前
|
JavaScript
Nuxt3 实战 (四):安装 Nuxt UI 和配置 Typescript 类型检查
这篇文章介绍了在项目中安装和配置Nuxt UI以及TypeScript的步骤。作者在前言中提到考虑了AntDesignVue和Element-Plus,但最终选择了NuxtUI,因为它更适合年轻化的项目,并且与Nuxt兼容。安装Nuxt UI需要执行一系列命令,同时会自动安装一些相关模块。然后,可以在Nuxt应用中使用Nuxt UI的所有组件和可组合函数。此外,还介绍了如何添加图标库和配置TypeScript。
128 0
Nuxt3 实战 (四):安装 Nuxt UI 和配置 Typescript 类型检查
|
5月前
|
安全 API 数据库
SAP ABAP OData 中 Function import 的概念介绍
SAP ABAP OData 中 Function import 的概念介绍
|
5月前
|
前端开发 数据库 开发者
如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 试读版
如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 试读版
SAP ABAP OData 服务里需要指定 guid 类型的请求参数时,正确语法是什么?
SAP ABAP OData 服务里需要指定 guid 类型的请求参数时,正确语法是什么?
|
5月前
|
JSON 应用服务中间件 API
使用 ABAP 代码消费 SAP 系统的 OData 服务
使用 ABAP 代码消费 SAP 系统的 OData 服务
关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为试读版
关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为试读版
|
5月前
|
XML JSON 开发框架
基于 OData 模型和 JSON 模型的 UI5 表格控件行项目的添加和删除实现
基于 OData 模型和 JSON 模型的 UI5 表格控件行项目的添加和删除实现
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
【AI大模型应用开发】3.2 RAG实战 - RAG应用+UI实现加载本地文件并对话
【AI大模型应用开发】3.2 RAG实战 - RAG应用+UI实现加载本地文件并对话
190 0