SAP Fiori Launchpad Tile,UI5 应用,和 PFCG Role 的对应关系
问题:已经看到了SAP Fiori Launchpad上的某个tile,如何反推后台需要配置哪个PFCG Role才能看到该tile?
这个问题是今天一个朋友在微信上问我的。因为我最近忙着学习一个新的SAP产品,所以这个问题也没有时间展开来写,本文就只做概要介绍。
下图是一个Gateway系统上打开的SAP CRM Fiori Launchpad:
如何弄清楚后台用户配置了哪个PFCG Role之后,才能看到Sales Representative(CRM)这个Group下的tile?
既然当前我使用的用户Jerry Wang登录系统之后能看到这些tile,那么用Chrome开发者工具观察该用户登录之后,从浏览器向Gateway系统发起的请求和收到的响应即可找到线索。
下图Chrome开发者工具Network标签页里,在蓝色高亮的start_up请求之前还有6个请求:
第一个请求是读取Fiori Launchpad的html实现源代码;
第二个请求abap.js是前台UI5连接以ABAP为技术栈的SAP后台系统所需的ABAP Unified Shell的引导库文件;
第三到第六个请求core-min-<数字>.js用来加载UI5库文件;
高亮的请求(start_up),读取的是当前登录用户存储在ABAP后台系统的User Profile,比如日期格式,数字格式,登录语言设置等等。
这个start_up请求和后台PFCG Role的配置无关,因此我们跳过,继续看下一个PageSets请求:
这个PageSets请求返回一个Catalog Group,title信息正好是我们在Launchpad里看到的Sales Representative (CRM),ID为SAP_CRM_BCG_SalesRep.
实际上找到这个ID就足够了。在Gateway系统上执行事务码/UI2/FLPD_CUST,打开Fiori Launchpad Designer,根据ID SAP_CRM_BCG_SalesRep找到这个Group,发现里面包含的tile正是Jerry Wang这个用户登录系统后看到的tile.
以及Catalog ID:SAP_CRM_BC_SalesRep.
接下来的TargetMappings请求,依次取出Catalog下面每个tile的SemanticAction和Semantic Object:
有了这两个字段,UI5框架就知道该tile点击之后,应该跳转到哪个具体的UI5应用去。Semantic Object和Semantic Action这对字段,同UI5应用的映射关系,同样在SAP Fiori Launchpad Designer里维护。以上图的MyAccounts tile为例,在Launchpad Designer里选择Target Mapping,点击Configure:
Semantic Object和Action这对字段,在Target Mapping明细页面里,同蓝色高亮区域的三个字段建立了一一映射关系:
Role:UICRM001
Launchpad Instance: TRANSACTIONAL
Application Alias: MyAccounts
其中绿色高亮字段Application Alias,能够唯一标识一个UI5应用。
Gateway系统后台执行事务码LPD_CUST, 找到上图蓝色区域里Role和Instance对应的记录,双击查看明细:
明细页面里,Fiori Launchpad tile MyAccounts维护在Launchpad Designer里的Application Alias,映射到一个能够在SE80里找到的SAP UI5应用(以一个BSP应用的载体存储在ABAP系统里).
以上就是当用户点击了Fiori Launchpad某个tile之后,SAP UI5框架是如何解析出tile包含的Semantic Object和Semantic Action,进而得到Application Alias,最后得到实际的UI5应用名称的过程。
回到这位朋友问的问题,任意新建一个PFCG Role,在这个Role的Menu里维护上我们之前在Chrome开发者工具里找到的Catalog Group和Catalog ID即可。
例如下图这个我新建的PFCG Role ZSAP_CRM_BCR_SALESREP:
当然,SAP也预定义了一些标准的PFCG Role,比如SAP_CRM_BCR_SALESREP,因此我们可以从这些标准的PFCG Role拷贝新的Role出来,再根据我们的实际需求进行修改。
感谢阅读。
相关文章
- SAP Commerce Cloud Accelerator 的响应式 Theme 介绍
- SAP Spartacus 和 CDC 集成的 HTTP 请求明细
- SAP UI5 sap.ui.layout.Grid 控件宽度百分比的设置原理
- 国产ERP有没有机会击败SAP ?
- 关于使用 SAP UI5 代码设置应用 theme 的技巧
- SAP UI5 应用中的 sap.ui.require 使用场景
- SAP UI5 应用中的 sap.ui.require.toUrl 使用场景
- SAP UI5 sap.ui.Device.media 公有方法介绍
- SAP UI5 sap.ui.Device.media.initRangeSet 方法的单步调试
- 通过一个实际例子,理解 SAP UI5 sap.ui.model.odata.v2.ODataModel API 中 BindingContext 绑定上下文的概念和用法试读版
- 如何手动通过增强的方式,给 SAP ABAP 数据库表增添新的字段试读版
- SAP ABAP Application Log 的使用方法
- SAP UI5 应用 manifest.json 文件里 Routes 数组元素的相对顺序,不可忽视的试读版
- SAP QM Quality Certificate 系列1
- SAP MM 物料移动平均价的修改历史
- SAP Fiori 3 的 Quartz Theme 在 WebClient UI 和 SAPGUI 中的应用
- Google Tag Manager (GTM) 和 Adobe AEPL 在 SAP Spartacus 中的应用
- 如何在 SAP BTP 上创建 Module 之间具有依赖关系的 SAP MTA 应用
- 深入比较:SAP vs Oracle(sap和oracle)
- SAP 图形页面详解编程语言
- SAP中日期时间函数总结详解编程语言
- SAP 跨工厂采购订单交易(两工厂都要看出收入和成本)详解编程语言
- SAP 如何从表中区分内外向交货单详解编程语言
- SAP系统权限管理及参数设置详解编程语言
- SAP 用户权限解析详解编程语言
- SAP-MM:物料采购订单的客制化开发与对应打印/预览的配置详解编程语言
- 深度比较:SAP vs Oracle(sap与oracle比较)
- Oracle和SAP教程一步一步学习(oracle sap教程)
- 探索 Oracle 与 SAP 技术的开发可能性(oracle sap开发)