天天看點

SAP ABAP Fiori Launchpad role based page - cached_sap_menu - 基于角色的頁面顯示原理

Created by Jerry Wang, last modified on Aug 26, 2015

GET_ROLE_BASED_PAGE_USAGES

GET_START_UP_MENU

cached_navigation_tree

/ui2/nwbc_nav_tr

SUSR_USER_LOGONDATA_GET

IMPORT

FROM DATABASE

session buffer

get_user_info

get_roles

Read list of roles for the user: NAVIGATION_SELECT_AGRS_OF_USER

PRGN_READ_ROLE_MENU

entry point:

SAP ABAP Fiori Launchpad role based page - cached_sap_menu - 基于角色的頁面顯示原理

讀取user menu:

SAP ABAP Fiori Launchpad role based page - cached_sap_menu - 基于角色的頁面顯示原理

DB裡存放的cache結果:

SAP ABAP Fiori Launchpad role based page - cached_sap_menu - 基于角色的頁面顯示原理

讀取目前user的類型:

SAP ABAP Fiori Launchpad role based page - cached_sap_menu - 基于角色的頁面顯示原理
SAP ABAP Fiori Launchpad role based page - cached_sap_menu - 基于角色的頁面顯示原理

cache資訊:

SAP ABAP Fiori Launchpad role based page - cached_sap_menu - 基于角色的頁面顯示原理

如果cache不命中,進入line 13:

SAP ABAP Fiori Launchpad role based page - cached_sap_menu - 基于角色的頁面顯示原理

取得目前user 所有的role:

SAP ABAP Fiori Launchpad role based page - cached_sap_menu - 基于角色的頁面顯示原理
SAP ABAP Fiori Launchpad role based page - cached_sap_menu - 基于角色的頁面顯示原理
SAP ABAP Fiori Launchpad role based page - cached_sap_menu - 基于角色的頁面顯示原理

根據user role獲得node:

SAP ABAP Fiori Launchpad role based page - cached_sap_menu - 基于角色的頁面顯示原理
SAP ABAP Fiori Launchpad role based page - cached_sap_menu - 基于角色的頁面顯示原理

loop所有的role,根據role拿到對應的node:

SAP ABAP Fiori Launchpad role based page - cached_sap_menu - 基于角色的頁面顯示原理
SAP ABAP Fiori Launchpad role based page - cached_sap_menu - 基于角色的頁面顯示原理

總共獲得11個node:

SAP ABAP Fiori Launchpad role based page - cached_sap_menu - 基于角色的頁面顯示原理

對應的description如下:

SAP ABAP Fiori Launchpad role based page - cached_sap_menu - 基于角色的頁面顯示原理
SAP ABAP Fiori Launchpad role based page - cached_sap_menu - 基于角色的頁面顯示原理

繼續閱讀