`
JerryWang_SAP
  • 浏览: 1001104 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

SAP Fiori编程模型规范里注解 - @ObjectModel.readOnly工作原理解析

阅读更多

今天是农历鼠年大年初五,本文是鼠年第5篇文章,也是汪子熙公众号第204篇原创文章。

最近大家真是谈蝙蝠色变呀!

SAP官网的ABAP Programming Model for Fiori帮助文档里,定义了很多注解(Annotation):

SAP Help Portal

对于这些注解,我们可以从其字面含义和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后续的分享,感谢阅读。

更多阅读

0
2
分享到:
评论

相关推荐

    SAP-Fiori---快速指南.docx

    SAP Fiori 是 SAP 软件和应用程序的新用户体验(UX),提供了一组应用程序,用于常规业务功能,如工作批准,金融应用程序,计算应用程序和各种自助服务应用程序。SAP Fiori 提供了 300 多个基于角色的应用程序,如...

    SAP Fiori and SAP S4HANA - Large-Scale ....zip

    sap press doc 解压密码:abap_developer

    sapFiori配置手册[整理].pdf

    SAP Fiori配置手册 本配置手册旨在指导用户完成SAP Fiori的设置和配置,从而实现SAP Fiori Launchpad的激活。下面是该手册中所涉及到的知识点: 1. 创建管理员账号和测试账号 在SAP Fiori的配置中,需要创建管理...

    SAPFiori-快速指南.doc

    SAP Fiori 是 SAP 软件和应用程序的新用户体验(UX),提供了一组应用程序,用于常规业务功能,如工作批准,金融应用程序,计算应用程序和各种自助服务应用程序。SAP Fiori 提供 300 多个基于角色的应用程序,如人力...

    SAP Fiori---快速指南 共82页 2018年编著 word文档

    SAP Fiori 是 SAP 对传统用户界面的一次重大革新,通过简化复杂的业务流程和提供个性化体验,极大地提升了用户的满意度和工作效率。随着 SAP HANA 的普及和技术的发展,SAP Fiori 的应用范围和功能也将不断扩展,...

    SASP-FIORI-Blog-连篇.zip

    在本压缩包"SASP-FIORI-Blog-连篇.zip"中,我们有望找到一系列关于SAP Fiori安装、配置和使用的详细指南。 首先,安装SAP Fiori的前提条件是至关重要的。这通常包括但不限于以下几点: 1. **系统平台**:确保你的...

    SAP Fiori 2.0开发指南

    - **编写符合 SAP Fiori 2.0 规范的应用程序**: 开发者需要遵循一套新的设计准则来确保应用程序的一致性和可访问性。 ##### 2. **使用 SAP Fiori 元素开发 SAP Fiori 应用** - **列表报告视图 (List Report View)...

    Building SAP Fiori-like UIs with SAPUI5 in 10 Exercises

    - SAP Fiori-like应用程序UI - SAP Fiori-like应用程序架构 - 练习0:入门 - 练习1:资源模型 - 练习2:对象控制 - 练习3:格式化器 - 练习4:搜索功能 - 练习5:Split App & Shell - 练习6:额外的设备适配 - 练习7...

    Beginning_SAP_Fiori [Bince_Mathew] Apress

    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 简易开发流程

    SAP fiori的简易开发过程指南,从开发者角度出发,分后面ODATA开发环境和前端SAP UI5环境搭建,以及发布进行了讲解

    SAP Fiori - Adding a Custom Workflow in 6 Steps

    ### SAP Fiori - 在六步内添加自定义工作流 #### 概览 本文将详细介绍如何在SAP Fiori环境中通过六个步骤实现自定义工作流的添加。此过程旨在为那些希望利用SAP Fiori的强大功能来提升业务流程管理效率的企业提供...

    SAP Fiori APP 应用快速实施解决办法

    ### SAP Fiori APP 应用快速实施解决办法 #### 一、引言 SAP Fiori 是一种全新的用户界面设计原则和技术框架,旨在为用户提供直观、简洁和一致的体验。本文档将详细介绍如何通过手动配置步骤或使用预定义任务列表...

    SAP Fiori 最新现金流案例

    SAP Fiori 是一款由SAP公司开发的现代化用户体验设计框架,它提供了丰富的用户界面,旨在优化业务流程并提升工作效率。在这个最新的现金流案例中,我们看到SAP Fiori如何帮助用户实时监控和管理公司的财务状况。 ...

    基础Vue-基于SAP Fiori基础的组件。-Vue.js开发

    基本Vue描述基本Vue库是使用SAP Fiori基本知识构建的一组Vue.js组件。 SAP Fiori基础知识l基本Vue描述基本vue库是使用SAP Fiori基础知识构建的一组Vue.js组件。 SAP Fiori基础知识库是一个设计系统和HTML / CSS组件...

    SAP FIORI OVERVIEW

    SAP Fiori是一种创新的用户界面(UI)设计和交付架构,由SAP公司推出,旨在为企业应用程序带来消费级用户体验。SAP Fiori的目标是通过更新最广泛和频繁使用的SAP软件功能的用户界面,为用户提供即时价值,这些功能可以...

    SAP Fiori Launchpad配置指南

    ### SAP Fiori Launchpad配置指南 #### 一、引言 SAP Fiori Launchpad作为移动和桌面设备上的Fiori应用程序入口,为用户提供了一种直观便捷的方式去访问各种业务流程相关的应用。为了确保Fiori Launchpad能够满足...

    Fiori_Development_Guideline_Portal_V1.1 - Final Version.pdf

    Fiori Development Guideline Portal The content of this development guideline portal is structured in specific topics like for example setup the development environment, stateless applications, value ...

Global site tag (gtag.js) - Google Analytics