SAP WebClient UI配置决定(configuration)的逻辑介绍
This blog will try to introduce the Webclient UI Configuration determination logic to those friends who are new for this topic.
Suppose I log on Webclient UI via Business role SALESPRO and have opened Sales Order overview page and F2 to open technical information page, what are the meaning of the left four fields ( Searched For) and the right four fields ( ) ?
Figure1 Technical information page
In UI workbench, there are 8 standard configuration pre-delivered by SAP and 1 configuration done by customer.
Figure2 View configuration list for Sales Order detail view
The SAP configuration data is storaged in table BSP_DL_XMLSTRX2 while customer configuration in BSPC_DL_XMLSTRX2.
The configuration determination logic could be summarized as the following:
(1) The four fields config key, component usage, object type and object sub-type are evaluated by framework to determine which configuration should be loaded. The priorities of these four fields are different and hard coded by SAP, see following picture. These 22 table rows are called “Configuration Access sequence”.
(2) Customer configuration precedes SAP configuration. If a customer configuration is evaluated and accepted, the framework will stop the determination process and load it.
Figure3 Access sequnce table
Briefly speaking, the configuration determination logic could be concluded as below process:
(1) framework will build the access sequence table gt_access_sequence, which has 22 entries as listed in figure3. (2) framework will load the 8 sap configuration information( config key, component usage, object type and object subtype ) to internal table it_config_sap and 1 customer configuration to it_config_cus. (3) LOOP AT gt_access_sequence, within each loop, check it_config_cus whether there are matched configuration. If found, mark it as “Found” configuration and stop the process. If not found ( ie, the 11 times LOOP finish ), the framework will LOOP AT gt_access_sequence again from beginning, but this time the table it_config_sap is checked instead.
Let’s use the SalesOrder detail view as example to make this process more clear:
(1) Framework will try to load a configuration which matches the four fields displayed in debugger. These four fields are just considered as “Searched for” fields shown in figure 1.
Figure4 search key
(2) load the SAP and customer configuration data:
The internal table looks exactly the same as what we see in UI workbench ( Figure 2 ):
(3) if the determination is being executed in a customer system, there are totally 22 ( 11 for customer configuration and 11 for SAP configuration ) loop until a match is found.
the gt_access_sequence is filled according to Figure3.
For each fields, X means the corresponding field in it_config_cus or it_config_sap is checked with the search key passed in ( figure4 ), space means .
All 11 times LOOP for it_config_cus failed, so it_config_sap is now evaluated. The matched one is finally found in the last attempt, and since it belongs to SAP configuration, so in figure1 “Standard Configuration” is marked for Configuration Origin.
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 用 Wolfram 语言映射美国的山火
- Mathematica在中学数学教与学中的应用
- 总结一些ES不常用的filter
- 如何将炫酷的报表直接截图发送邮件——在Superset 0.37使用Schedule Email功能
- Kettle构建Hadoop ETL实践(五):数据抽取
- Kafka监控必备——Kafka-Eagle 2.0.2正式发布
- iOS Universal link 入门指南
- Flutter基础widgets教程-CupertinoAlertDialog篇
- Flutter基础widgets教程-cupertinoActivityIndicator篇
- Flutter基础widgets教程-Align篇
- 深入理解Linux内核进程上下文切换
- 面对疾风吧!io_uring 优化 nginx 实战演练
- 奇技淫巧:在 ssh 里面把服务器的文本复制到本地电脑
- 【计算机网络】学习笔记,第一篇:概述(谢希仁版)
- 【Objective-C】Objective-C语言的动态性