今天是农历鼠年大年初五,本文是鼠年第5篇文章,也是汪子熙公众号第204篇原创文章。
最近大家真是谈蝙蝠色变呀!
SAP官网的ABAP Programming Model for Fiori帮助文档里,定义了很多注解(Annotation):
对于这些注解,我们可以从其字面含义和SAP帮助文档去掌握其用法和功能。
以@ObjectModel.readOnly为例,施加了这个注解的CDS view字段,在对应的Fiori UI上以只读的方式渲染:
并且也不能通过编程的方式进行修改。
大家在使用这些注解的时候,有没有想过,它们是怎么工作的?
以@ObjectModel.readOnly为例,现在就请跟着Jerry一起,去探索它的前后台实现原理。
在Chrome开发者工具的UI5面板里,找到Posting Date这个控件对应的属性,发现字段editable属性值为false,这就是其在UI不能编辑的原因。
如果你的Chrome开发者工具没有UI5这个标签,请参考Jerry这篇文章,安装Chrome for UI5的扩展:
[Jerry的Fiori原创文章合集](Jerry的Fiori原创文章合集)
既然后台模型是CDS view,那么前台UI显然基于Fiori Elements. 我想知道Posting Date这个控件的editable属性是在什么时候被设置成false的。
在SmartField.setEditable函数里设置断点,重新打开Fiori UI,点击Edit进入编辑模型,断点触发,从调用栈能看出,有代码调用SmartField.setEditable时,传入的参数为false.
那么这个false如何计算出来的?顺着当前的调用栈往外层查找,发现一个重要的函数:
AnnotationHelper.canUpdateProperty.
从函数名就能猜测出,这个函数负责计算一个控件的属性是否允许更新(Update),工作的上下文就是注解(Annotation).
这个方法实现体的语义也很清楚,如果后台模型字段sap:updatable设置为false,则canUpdateProperty函数调用返回false,导致SmartField.setEditable以参数false去渲染Fiori UI.
我们打开OData服务的metadata,发现posting date字段对应的sap:updatable果然为false.
至此Fiori UI的工作原理分析完毕。我们再来看后台。我的CDS view里只添加了@ObjectModel.readOnly为true的注解,而非sap:updatable. 显然,这二者存在一定的关联关系。
在Jerry之前的文章 Jerry的CDS view自学系列 介绍过CDS view框架处理逻辑,有这么一段代码:
第839行的IF判断,如果OBJECTMODEL.READONLY为true,则read_only属性为X.
而read_only属性为true,会导致posting date字段的属性集合内表里,新增一条read_only为X的记录:
最后,在SADL框架的属性检测逻辑中,一旦发现字段属性集合内表里存在read_only为X的属性,则将lv_creatable和lv_updatable置为false.
而SADL框架计算出来的这两个值为false的布尔变量,最后就会将sap:creatable和sap:updatable设置为false.
@ObjectModel.readOnly属性的前后台工作原理的神秘面纱,至此就揭开了,然而它只是SAP Fiori编程模型众多注解的冰山一角。敬请关注Jerry后续的分享,感谢阅读。
更多阅读
相关推荐
SAP Fiori 是 SAP 软件和应用程序的新用户体验(UX),提供了一组应用程序,用于常规业务功能,如工作批准,金融应用程序,计算应用程序和各种自助服务应用程序。SAP Fiori 提供了 300 多个基于角色的应用程序,如...
sap press doc 解压密码:abap_developer
SAP Fiori配置手册 本配置手册旨在指导用户完成SAP Fiori的设置和配置,从而实现SAP Fiori Launchpad的激活。下面是该手册中所涉及到的知识点: 1. 创建管理员账号和测试账号 在SAP Fiori的配置中,需要创建管理...
SAP Fiori 是 SAP 软件和应用程序的新用户体验(UX),提供了一组应用程序,用于常规业务功能,如工作批准,金融应用程序,计算应用程序和各种自助服务应用程序。SAP Fiori 提供 300 多个基于角色的应用程序,如人力...
SAP Fiori 是 SAP 对传统用户界面的一次重大革新,通过简化复杂的业务流程和提供个性化体验,极大地提升了用户的满意度和工作效率。随着 SAP HANA 的普及和技术的发展,SAP Fiori 的应用范围和功能也将不断扩展,...
在本压缩包"SASP-FIORI-Blog-连篇.zip"中,我们有望找到一系列关于SAP Fiori安装、配置和使用的详细指南。 首先,安装SAP Fiori的前提条件是至关重要的。这通常包括但不限于以下几点: 1. **系统平台**:确保你的...
- **编写符合 SAP Fiori 2.0 规范的应用程序**: 开发者需要遵循一套新的设计准则来确保应用程序的一致性和可访问性。 ##### 2. **使用 SAP Fiori 元素开发 SAP Fiori 应用** - **列表报告视图 (List Report View)...
内容概要:本文全面介绍了 SAP Fiori,一种为各类业务部门提供个性化、基于角色用户体验的新界面。涵盖了其背景、设计原则、应用场景、应用程序分类(事务应用程序、分析应用程序、情况说明书)、系统架构及其硬件和...
### SAP Fiori APP 应用快速实施解决办法 #### 一、引言 SAP Fiori 是一种全新的用户界面设计原则和技术框架,旨在为用户提供直观、简洁和一致的体验。本文档将详细介绍如何通过手动配置步骤或使用预定义任务列表...
SAP Fiori 是 SAP 公司推出的一种全新的用户体验(UX)设计,旨在提供更加直观、高效和个性化的企业级应用程序。这个快速指南将带你了解 SAP Fiori 的基本概念、设计原则以及不同类型的 SAP Fiori 应用程序。 首先...
- SAP Fiori-like应用程序UI - SAP Fiori-like应用程序架构 - 练习0:入门 - 练习1:资源模型 - 练习2:对象控制 - 练习3:格式化器 - 练习4:搜索功能 - 练习5:Split App & Shell - 练习6:额外的设备适配 - 练习7...
基本Vue描述基本Vue库是使用SAP Fiori基本知识构建的一组Vue.js组件。 SAP Fiori基础知识l基本Vue描述基本vue库是使用SAP Fiori基础知识构建的一组Vue.js组件。 SAP Fiori基础知识库是一个设计系统和HTML / CSS组件...
Take a deep dive into SAP Fiori and discover Fiori architecture, Fiori landscape installation, Fiori standard applications, Fiori Launchpad configuration, tools for developing Fiori applications and ...
SAP fiori的简易开发过程指南,从开发者角度出发,分后面ODATA开发环境和前端SAP UI5环境搭建,以及发布进行了讲解
### SAP Fiori - 在六步内添加自定义工作流 #### 概览 本文将详细介绍如何在SAP Fiori环境中通过六个步骤实现自定义工作流的添加。此过程旨在为那些希望利用SAP Fiori的强大功能来提升业务流程管理效率的企业提供...
SAP Fiori 是一款由SAP公司开发的现代化用户体验设计框架,它提供了丰富的用户界面,旨在优化业务流程并提升工作效率。在这个最新的现金流案例中,我们看到SAP Fiori如何帮助用户实时监控和管理公司的财务状况。 ...
内容概要:介绍了SAP Fiori的ABAP编程模型的基本架构,涵盖从核心数据服务(CDS)到ABAP应用程序服务和SAP UI5的使用,深入解析了基于CDS的观点层数据定义及其相关BOPF(Business Object Processing Framework)的运用,...
内容概要:该文件详细介绍了用于支持SAP Fiori应用开发的ABAP编程模型的关键要素及其应用场景。这涵盖了如何利用核心数据服务(CDS)定义丰富的语义模型以及OData协议的应用方法。主要内容包括如何将不同组件集成到...