SAP Fiori编程模型规范里如何进行@ObjectModel.readOnly工作原理解析

技术SAP Fiori编程模型规范里如何进行@ObjectModel.readOnly工作原理解析本篇文章为大家展示了SAP Fiori编程模型规范里如何进行@ObjectModel.readOnly工作原理解析,内容简

本文向您展示了如何在SAP费奥里编程模型规范中分析@ObjectModel.readOnly的工作原理。内容简洁易懂,一定会让你大放异彩。希望通过这篇文章的详细介绍,你能有所收获。

SAP的费奥里ABAP编程模型帮助文档在官网定义了许多注释):

思爱普帮助门户

SAP  Fiori编程模型规范里如何进行@ObjectModel.readOnly工作原理解析

对于这些注释,我们可以从它们的字面意思和SAP帮助文档中掌握它们的用法和功能。

SAP  Fiori编程模型规范里如何进行@ObjectModel.readOnly工作原理解析

以@ObjectModel.readOnly为例,带有此注释的CDS视图字段在相应的费奥里UI上以只读方式呈现:

SAP  Fiori编程模型规范里如何进行@ObjectModel.readOnly工作原理解析

并且不能以编程方式修改。

SAP  Fiori编程模型规范里如何进行@ObjectModel.readOnly工作原理解析

当你使用这些注释时,你有没有想过它们是如何工作的?

以@ObjectModel.readOnly为例。现在,请跟随Jerry一起探索它的前台和后台实现原理。

在Chrome开发者工具的UI5面板中,找到过账日期控件对应的属性,发现该字段的可编辑属性值为false,这就是UI中无法编辑的原因。

如果你的Chrome开发者工具没有UI5标签,请参考Jerry的文章为UI5安装Chrome扩展:

[杰瑞原创费奥里文章集](

杰里费奥里原创文章集)

SAP  Fiori编程模型规范里如何进行@ObjectModel.readOnly工作原理解析

由于背景模型是CDS视图,前景UI显然是基于费奥里元素的。我想知道发布日期控件的可编辑属性何时被设置为false。

在SmartField.setEditable函数中设置断点,重新打开费奥里UI,点击Edit进入编辑模型,断点触发。从调用栈可以看出,当代码调用SmartField.setEditable时,传入的参数为false。

SAP  Fiori编程模型规范里如何进行@ObjectModel.readOnly工作原理解析

那么这个假是怎么算出来的呢?向下查看外层的当前调用堆栈,找到一个重要的函数:

annotationhelper . canupdateproperty。

从函数的名字可以猜到,这个函数负责计算一个控件的属性是否允许为Update,工作上下文为Annotation。

SAP  Fiori编程模型规范里如何进行@ObjectModel.readOnly工作原理解析

这个方法实现者的语义也很清楚。如果背景模型字段sap :可更新设置为false,则canUpdateProperty函数调用返回false,这将导致SmartField.setEditable使用参数false呈现费奥里用户界面。

我们打开OData服务的元数据,发现过帐日期字段对应的AP :可更新为false。

SAP  Fiori编程模型规范里如何进行@ObjectModel.readOnly工作原理解析

至此,费奥里UI的工作原理分析完成。我们再去后台看看。只有@ObjectModel.readOnly为真的注释被添加到我的CDS视图中,而不是sp :可更新。显然,两者之间有一定的相关性。

杰瑞之前的文章

Jerry的CDS视图自学系列介绍了CDS视图框架的处理逻辑,并有这样一段代码:

SAP  Fiori编程模型规范里如何进行@ObjectModel.readOnly工作原理解析

第839行的IF判断,if OBJECTMODEL。只读为真,则只读属性为x .

当只读属性为真时,它将导致在过帐日期字段的属性集中出现一条只读为X的新记录:

SAP  Fiori编程模型规范里如何进行@ObjectModel.readOnly工作原理解析

SAP  Fiori编程模型规范里如何进行@ObjectModel.readOnly工作原理解析

最后,在SADL框架的属性检测逻辑中,一旦发现在字段属性集的表中有一个只读为x的属性,就将lv_creatable和LV _可更新设置为false。

SAP  Fiori编程模型规范里如何进行@ObjectModel.readOnly工作原理解析

由SADL框架计算的两个具有假值的布尔变量将最终将sap:creatable和sa p :可更新设置为false。

SAP  Fiori编程模型规范里如何进行@ObjectModel.readOnly工作原理解析

到目前为止,@ObjectModel.readOnly属性的工作原理之谜已经被揭开,但它只是SAP费奥里编程模型的许多注释的冰山一角。

以上内容是如何分析SAP费奥里编程模型规范中@ObjectModel.readOnly的工作原理。你学到什么知识或技能了吗?如果你想学习更多的技能或丰富你的知识,请关注行业信息渠道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/132533.html

(0)

相关推荐

  • 花呗不能付款怎么回事,花呗已无法正常使用怎么回事

    技术花呗不能付款怎么回事,花呗已无法正常使用怎么回事1、你可能脱离了常用地点(或常用设备)花呗不能付款怎么回事。比如,原本基本不去外地,结果你去外地了;或者你的手机更换了;这些情况有可能都会导致你的花呗没法使用。如果不是

    生活 2021年10月27日
  • css如何设置td元素的文本靠上显示

    技术css如何设置td元素的文本靠上显示这篇文章将为大家详细讲解有关css如何设置td元素的文本靠上显示,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 在c

    攻略 2021年12月11日
  • git flow 的正确使用姿势(gitflow工作流程)

    技术如何浅析GitLab Flow的十一个规则本篇文章为大家展示了如何浅析GitLab Flow的十一个规则,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。使用 Git 版本控制

    攻略 2021年12月18日
  • 七种基本UML元件分别是什么

    技术七种基本UML元件分别是什么这篇文章给大家介绍七种基本UML元件分别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。UML元件上节的讲解是按照功能对UML图形进行的分类,绘制UML图形时,我

    攻略 2021年11月23日
  • 第13章 约束

    技术第13章 约束 第13章 约束第13章_约束1. 约束(constraint)概述
    1.1 为什么需要约束
    数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(R

    礼包 2021年11月25日
  • fabricca配置文件详细说明(fabric-ca设置账户使用期限)

    技术Fabric CA创建用户机制的示例分析这篇文章给大家分享的是有关Fabric CA创建用户机制的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在研究Fabric CA 创建用户,

    攻略 2021年12月25日