云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

数据库_数据库的基础_三重好礼

小七 141 0

数据库_数据库的基础_三重好礼

1UI5应用程序调试2ABAP后端调试

第1部分-如何测试CDS视图生成的odata服务第2部分-激活一个CDS视图后自动生成哪些对象第3部分—Eclipse中的视图源如何转换为后端的ABAP视图第4部分-注释如何@OData.发布工作第5部分-如何在OData服务中创建支持导航的CDS视图第6部分-使用CDS视图中的表函数第7部分-本博客第8部分-我对注释声明和生成的不同方法的总结第9部分-立方体视图和查询视图第10部分-CDS视图关键用户扩展性在S4/HANA中如何工作第11部分-CDS视图测试双框架第12部分-CDS查看源代码计数工具第13部分-CDS视图授权

距离我上一个教程已经过去了将近一个月,现在我能够用CDS视图+智能模板构建一个有用的UI5应用程序

查看我最近的研究结果:

在几分钟内创建一个CRM服务订单Fiori应用程序启用带有编辑功能的CRM服务订单应用程序

现在让我继续自学教程。

在启用编辑功能的应用程序中,我根据sap帮助使用下面的注释将过帐日期设置为只读。

它在运行时按预期工作。然而,它为什么有效?作为一个开发人员,我讨厌这些东西对我来说就像一个黑匣子。我想知道引擎盖下发生了什么。下面我将和大家分享我是如何通过前端和后端的调试来挖掘出来的。

在Chrome开发工具中,我知道可编辑状态是由给定UI模型的属性"editable"控制的。

所以在上面设置一个断点SmartField.setEditable可编辑功能如下,然后点击编辑按钮,我们可以观察到参数bValue作为false传递给这个函数。下一个问题,这个b值是怎么计算出来的,在哪里计算出来的?

从callstack中我可以找到另一个重要的函数:canUpdateProperty。在这个函数中,从第241行我们可以得到这样的结论:任何属性sap:可更新"等于false,高防云服务器,双线服务器租用,将在UI中呈现为只读。

显然这个属性是在后端设置的,高防云服务器,我们可以通过签入元数据来确认:

现在向ABAP后端提问:我从未指定任何类似的注释sap:可更新=假在我看来,它从何而来?

在这个方法中,云服务器好,框架是对"name"的注解进行扫描OBJECTMODEL.READONLY文件",如第836行常量中所定义。

如果找到,ls\u sfc-read\u only设置为true。

此赋值将导致第848行的检查成功(因为默认情况下字段是可编辑的),结果,一个条目被插入到内部表mt\u element\u static\u field\u ctrl中。

这是表中过帐日期条目的详细视图。

之后,对内部表进行评估,如果存在read\u=abap\u true的条目(见第71行),则lv\u createable和lv\u updateable设置为false。

最后在第82行和85,lv\u createable和lv\u updateable用于相应地设置属性。所有的秘密都公布了!

,移动物联网