今天是2020年2月2日鼠年大年初九,这是Jerry鼠年的第9篇文章,也是汪子熙公众号总共第208篇原创文章。
这几天大家在家一日游的感觉如何?
看巧手的网友用瓜子自制的霸王龙:
工作中Jerry的同事曾经问过我一个问题,Fiori界面上这个Adapt UI的按钮,为什么有的系统上有,有的系统上没有?Fiori Key User正是通过点击该按钮,进入Fiori UI的Adaptation模式,从而实现在屏幕上新增扩展字段的目的。
比较下面两个不同系统的截图:
为什么这个Adapt UI按钮,如此神出鬼没,有的系统上有显示,有的没有?
自己动手,丰衣足食。假设你的身边找不到Fiori专家,如何通过自己在系统里调试的方法找到问题的答案呢?
Jerry之前的文章 Jerry的Fiori原创文章合集 ,搜集了很多案例,讲述了如何通过单步调试,去分析和处理Fiori开发工作中的一些常见问题。
现在我们再次通过单步调试的方式来分析这个Adapt UI按钮动态显示与否的逻辑。
首先根据Jerry这篇博客介绍的SAP UI5控件在浏览器端的渲染逻辑的知识,找出是一个ID为sap.ushell.plugins.rta的插件,负责管理该Adapt UI按钮。我个人把rta理解成Run Time Adaptation.
How I do self-study on a given Fiori control - part 2
这个插件从哪里来呢?在Chrome开发者工具里对sap.ushell.config和sap-ushell-config这组关键字进行全文搜索,找到了下面的代码片段:
由此可见,rta这个插件实例,存储在sap-ushell-config这个全局对象的bootstrapPlugins属性里。
在Adapt UI按钮能够显示的系统上调试,发现全局对象sap-ushell-config的值,来自oServerSideConfig这个JSON对象,而后者的值,是从SAP Fiori Launchpad的html页面里一个硬编码的字符串反序列化而成:
把FioriLaunchpad.html里这个硬编码的字符串拷贝下来:
decode之后,发现其层级结构同我们之前在Chrome开发者工具里观察到的sap-ushell-config全局对象完全一致,说明我们找对地方了。
下一步就是要弄清楚FioriLaunchpad.html里这个硬编码的字符串到底来自何方。标准开发人员一个字符一个字符敲进去的?SAP软件没有这么傻。
SE80打开Fiori Launchpad Shell对应的BSP应用:
/ui2/ushell, 发现字符串的值来自变量:
${SERVER-SIDE-CONFIG}
因此SE80里我们找到的这个FioriLaunchpad.html只是起到一个模板文件的作用,里面第76行出现的${SERVER-SIDE-CONFIG}, 也只是一个占位符,会被运行时该变量的实际值替换,最后就成了我们在Chrome开发者工具里观察到的那个长长的字符串。
那么变量${SERVER-SIDE-CONFIG}的值从哪里来?在BSP应用里查找,发现get_server_side_config_json方法返回的值,注入到该变量里。
所以现在的问题转化为,通过单步调试get_server_side_config_json方法,弄清楚里面的逻辑:
当我单步调试进入该方法时,发现上图第18行lr_data->mt_plugin这个内表里,已经包含了需要返回并注入到变量${SERVER-SIDE-CONFIG}里的当前系统上所有可用的Fiori Launchpad插件实例了,本文关注的sap.rta.plugin也赫然在列。
那么为什么本文开头提到的另一个系统里,没有显示Adapt UI按钮呢?
问题就出在下图第22行的CHECK语句。第18行的mt_plugin内表,存储了当前系统所有可用的Fiori Launchpad插件,每个插件都对应一个catalog ID.
第21行的内表it_catalogs, 存放的是当前登录用户通过分配的PFCG角色所拥有的catalog ID集合。
上图这段代码的语义是,遍历当前系统所有可用的Fiori Launchpad插件,如果其对应的catalog ID,没有出现在登录用户所拥有的catalog ID集合里,那么该插件对于该登录用户来说就是无效的(invalid), 应该将其从Fiori Launchpad上隐藏。
从上图的调试窗口,我得知Run Time Adaptation这个插件对应的catalog ID为/UIF/SAP_RTA_PLUGIN, 然后我到ABAP后台SU01去检查,发现在看不到Adapt UI按钮的那个系统里,我的用户果然没有分配这个catalog. 于是将其分配上去:
问题得以解决,现在Fiori UI里,这个久违的Adapt UI又回来了。
这就是一个实际的“自己动手,丰衣足食”的例子——我通过单步调试,没有求助Fiori专家,也解决了工作中遇到的实际问题。
更多阅读
- Jerry的通过CDS view + Smart Template 开发Fiori应用的blog合集
- SAP Fiori应用的三种部署方式
- Jerry的Fiori原创文章合集
- SAP成都C4C小李探花:浅谈Fiori Design Guidelines
- SAP Fiori + Vue = ?
- Fiori Fundamentals和SAP UI5 Web Components
- 30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用
- SAP Fiori应用索引大全
- 介绍一种Fiori标准应用的增强方式
- 揭开SAP Fiori编程模型规范里注解的神秘面纱 - @ObjectModel.readOnly工作原理解析
- 为什么SAP GUI里的传统事务码能通过Fiori Launchpad启动并运行在浏览器里
- 一步步把SAP GUI的事务码配置到SAP Fiori Launchpad里
相关推荐
2011年,SAP发布了SAPUI5的初版,2013年发布了SAP Fiori,随后在2017年推出了SAPUI5的更新版本。Fiori 2.0特别强调了响应式设计,让界面能够适应不同尺寸的屏幕,用户无论使用何种设备都能获得良好的使用体验。 SAP...
SAP Fiori配置手册 本配置手册旨在指导用户完成SAP Fiori的设置和配置,从而实现SAP Fiori Launchpad的激活。下面是该手册中所涉及到的知识点: 1. 创建管理员账号和测试账号 在SAP Fiori的配置中,需要创建管理...
### SAP Fiori 快速指南知识点详述 #### 一、SAP Fiori 简介 SAP Fiori 是一款由 SAP 开发的新用户体验(UX),旨在为用户提供直观、简洁的操作界面。它包含了300多个基于角色的应用程序,覆盖了人力资源、制造、...
SAP fiori的简易开发过程指南,从开发者角度出发,分后面ODATA开发环境和前端SAP UI5环境搭建,以及发布进行了讲解
- SAP Fiori 2.0 在 SAP UI5 中增加了新的设计元素和支持,使得应用程序能够更好地适应不同设备和屏幕尺寸。 - 新的设计支持包括改进的响应式布局、增强的交互性以及更丰富的视觉元素。 ##### 2. **SAP Fiori ...
SAPUI5适合用于开发SAP Fiori风格的用户界面,Fiori是SAP提出的一个用户体验设计准则,旨在为所有SAP软件产品提供统一、简洁且易于使用的界面。 本教程文档介绍了如何使用SAPUI5构建类似SAP Fiori的应用程序UI,并...
上述介绍涵盖了SAPUI5和SAP Fiori开发工具的基础知识,详细介绍了SAPUI5的开发环境以及如何开始使用SAP Web IDE和Eclipse Web IDE进行SAPUI5应用的开发。通过这些工具,开发者可以更加高效地进行SAP Fiori应用的开发...
【SAP Fiori 现金流案例详解】 SAP Fiori 是一款由SAP公司开发的现代化用户体验设计框架,它提供了丰富的用户界面,旨在优化业务流程并提升工作效率。在这个最新的现金流案例中,我们看到SAP Fiori如何帮助用户实时...
SAPUI5(SAP Fiori)是SAP公司推出的一款用于构建企业级用户界面的前端框架。它基于HTML5、CSS3和JavaScript,旨在为用户提供现代、简洁且一致的用户体验。SAPUI5与SAP Fiori紧密相连,Fiori是SAP用户界面设计的一套...
SAP Fiori是一种创新的用户界面(UI)设计和交付架构,由SAP公司推出,旨在为企业应用程序带来消费级用户体验。SAP Fiori的目标是通过更新最广泛和频繁使用的SAP软件功能的用户界面,为用户提供即时价值,这些功能可以...
SAP Fiori SAP Fiori SAP Fiori Architecture Architecture Overview to Deep Overview to Deep Dive -with with focus on S/4 HANA focus on S/4 HANA
SAPUI5,也被称为SAP Fiori,是SAP公司推出的一套用户界面技术标准,用于构建企业级应用。SAP Fiori的设计宗旨是提供一种直观、响应快速和适应多种设备的用户体验。SAPUI5是实现SAP Fiori应用开发的关键技术,它基于...
### SAP Fiori APP 应用快速实施解决办法 #### 一、引言 SAP Fiori 是一种全新的用户界面设计原则和技术框架,旨在为用户提供直观、简洁和一致的体验。本文档将详细介绍如何通过手动配置步骤或使用预定义任务列表...
- 对于基于SAP NetWeaver 7.40的前端服务器,Fiori Launchpad和Launchpad Designer作为SAP_UI软件组件的一部分已经包含在标准SAP NetWeaver 7.40中。 - 对于基于SAP NetWeaver 7.31的前端服务器,Fiori Launchpad和...
### SAP Fiori OData 实施步骤详解 #### 一、OData与SAP Fiori的关系 在SAP Fiori环境中,OData(Open Data Protocol)扮演着至关重要的角色。它是一种用于定义构建和消费RESTful API的最佳实践的标准协议。通过...
SAP Fiori Elements Development UX 403 SAP Fiori Elements Development UX 403 是一门关于 SAP Fiori 元素开发的高级课程,旨在帮助开发人员学习如何构建高质量的用户体验(UX)。本课程的主要目标是让开发人员...
**SAP Fiori** 是 SAP 公司为改善其应用程序的用户界面(UI)和用户体验(UX)而推出的一套设计原则和技术框架。自2013年发布以来,SAP Fiori 已经成为了 SAP 软件产品中的核心元素之一,旨在通过简洁、直观的设计...
SAP Fiori是一个为SAP软件用户界面提供全新设计框架的用户体验。它强调简洁直观的用户界面,并能够适应不同的设备,包括桌面电脑、平板和智能手机。SAP Fiori 2.0系列视频教程涵盖了从基础到高级的内容,帮助开发者...
### SAP Fiori 2.0 产品介绍 #### 一、设计原则与创新方法论 **SAP Fiori 2.0** 是SAP SE在2016年推出的一款面向用户需求的企业软件解决方案,其核心设计理念是为用户提供简单、一致且令人愉悦的用户体验。在**第...