SAP WebClient UI component模型元数据解析工具

简介: SAP WebClient UI component模型元数据解析工具

image.png

However, if there are too many enhancement sets in the system, it could be very inefficient for manual comparison.


Fortunately the comparison could be done by code below.


The report is quite simple:

(1) in line 9, get all enhancement sets list under which the UI component is enhanced.

(2) get the enhanced BSP application name and page name in line 11 and 12, then get the component usage information for each enhanced BSP application via repository tool, then filter it by usage name “ZCUSTOM”.

REPORT zbsp.

CONSTANTS: cv_host TYPE o2applname VALUE 'BT116H_SRVO'.

DATA: lt_enh_sets TYPE bsp_dlct_ehset,

     ls_enh_set LIKE LINE OF lt_enh_sets,

     lt_extension TYPE STANDARD TABLE OF bspwd_comp_ext,

     ls_extension LIKE LINE OF lt_extension,

     lt_usages TYPE bsp_wd_cmp_usage_descr_tab,

     ls_usage LIKE LINE OF lt_usages.

lt_enh_sets = cl_bsp_dlc_config_util=>get_eh_sets_of_comp( iv_comp_name = cv_host ).

CHECK lt_enh_sets IS NOT INITIAL.

SELECT * INTO TABLE lt_extension FROM bspwd_comp_ext FOR ALL ENTRIES IN lt_enh_sets WHERE

  enhancement_set = lt_enh_sets-enhancement_set AND comp_name = cv_host.

LOOP AT lt_enh_sets INTO ls_enh_set.

 READ TABLE lt_extension INTO ls_extension WITH KEY enhancement_set = ls_enh_set-enhancement_set comp_name = cv_host.

 IF sy-subrc = 0.

   CLEAR: lt_usages.

   CALL METHOD zcl_view_repo_tool=>get_repo_metadata(

     EXPORTING

       iv_comp_name = ls_extension-bsp_appl

       iv_page_name = ls_extension-rt_rep_page

     IMPORTING

       et_usages    = lt_usages ).

   READ TABLE lt_usages WITH KEY usage_name = 'ZCUSTOM' INTO ls_usage.

   IF sy-subrc = 0.

     WRITE: / 'EnhancementSet: ', ls_enh_set-enhancement_set,

     ' defines component usage to component: ', ls_usage-child_cmp_type.

   ENDIF.

 ENDIF.

ENDLOOP.image.pngimage.pngimage.png

Update on 2017-06-02 14:45PM

It seems the source code in attachment is lost after SCN is migrated to SAP community. Please use the following report instead:

REPORT tool_bsp_metadata.

PARAMETERS: name TYPE o2applname DEFAULT 'SMCHS'.

TYPES ltype_viewline TYPE cl_bsp_wd_rep_view=>gtype_viewline .

TYPES:

 BEGIN OF gtype_op_mapping,

   name      TYPE string,

   op_plug   TYPE string,

   switch_id TYPE sfw_switch_id,

   reaction  TYPE sfw_showhide,

 END OF gtype_op_mapping .

TYPES:

 BEGIN OF gtype_ip_follow_up,

   name      TYPE string,

   navlink   TYPE string,

   switch_id TYPE sfw_switch_id,

   reaction  TYPE sfw_showhide,

 END OF gtype_ip_follow_up .

TYPES:

 BEGIN OF gtype_navlink,

   name         TYPE string,

   targets_done TYPE flag,

   targets      TYPE tbsp_wd_rep_navigation_targets,

   sfw_data     TYPE bsp_wd_sfw_data BOXED,

 END OF gtype_navlink .

TYPES:

 BEGIN OF gtype_viewline,

   view              TYPE string,

   active            TYPE abap_bool,

   view_id           TYPE n LENGTH 4,

   parent_viewset    TYPE string,

   parent_viewarea   TYPE string,

   parent            TYPE REF TO cl_bsp_wd_rep_view,

   initials          TYPE tbsp_wd_rep_viewarea_assigns,

   initials_done     TYPE abap_bool,

   navlinks          TYPE SORTED TABLE OF gtype_navlink

                        WITH NON-UNIQUE KEY name

                        INITIAL SIZE 0,

   rep_view          TYPE REF TO cl_bsp_wd_rep_view,

   is_window         TYPE abap_bool,

   is_intf_view      TYPE abap_bool,

   is_default_window TYPE abap_bool,

   ip_follow_ups     TYPE HASHED TABLE OF gtype_ip_follow_up

                        WITH UNIQUE KEY name

                        INITIAL SIZE 0,

   op_mappings       TYPE HASHED TABLE OF gtype_op_mapping

                        WITH UNIQUE KEY name

                        INITIAL SIZE 0,

   sfw_data          TYPE bsp_wd_sfw_data BOXED,

 END OF gtype_viewline .

TYPES:

  ltype_view_tab TYPE HASHED TABLE OF ltype_viewline

                             WITH UNIQUE KEY view active

                             INITIAL SIZE 0 .

DATA:   lv_loader TYPE REF TO cl_bsp_wd_stream_loader,

       lv_xml    TYPE string,

       lv_root   TYPE string.

CREATE OBJECT lv_loader.

lv_xml = lv_loader->load_from_bsp_page( iv_bsp_appl                 = name

                                       iv_bsp_page                 = 'Repository.xml' ). "#EC NOTEXT

DATA:   lt_views  TYPE ltype_view_tab,

       lt_usages TYPE bsp_wd_cmp_usage_descr_tab,

       result    TYPE REF TO cl_bsp_wd_repository.

* "parse" repository xml data directly into memory

CALL TRANSFORMATION bsp_wd_rt_rep_runtime

 SOURCE XML        lv_xml

 RESULT views    = lt_views

        rootview = lv_root

        usages   = lt_usages.

BREAK-POINT.

目录
相关文章
|
1月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
27 0
|
1月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
15 0
|
1月前
|
前端开发 JavaScript API
SAP UI5 sap.ui.require.toUrl 的作用介绍
SAP UI5 sap.ui.require.toUrl 的作用介绍
28 0
|
1月前
|
JSON 前端开发 测试技术
SAP UI5 sap.ui.core.util.MockServer.simulate 方法介绍
SAP UI5 sap.ui.core.util.MockServer.simulate 方法介绍
21 0
|
1月前
使用 SAP UI5 Event Bus 机制,修复 SAP UI5 分页显示数据的一个 bug 试读版
使用 SAP UI5 Event Bus 机制,修复 SAP UI5 分页显示数据的一个 bug 试读版
20 0
|
2月前
|
Linux 测试技术
Linux基础项目开发1:量产工具——UI系统(五)
Linux基础项目开发1:量产工具——UI系统(五)
29 0
Linux基础项目开发1:量产工具——UI系统(五)
|
21天前
什么是 SAP ABAP 里的 Subscreen
什么是 SAP ABAP 里的 Subscreen
15 1
什么是 SAP ABAP 里的 Subscreen
|
1月前
|
消息中间件 Kafka Linux
Kafka【付诸实践 03】Offset Explorer Kafka 的终极 UI 工具安装+简单上手+关键特性测试(一篇学会使用 Offset Explorer)
【2月更文挑战第21天】Kafka【付诸实践 03】Offset Explorer Kafka 的终极 UI 工具安装+简单上手+关键特性测试(一篇学会使用 Offset Explorer)
181 2
|
1月前
|
开发者 UED
关于 SAP UI5 sap.m.Column 的 demandPopin 属性
关于 SAP UI5 sap.m.Column 的 demandPopin 属性
15 0
|
8天前
yolo-world 源码解析(六)(2)
yolo-world 源码解析(六)
18 0