SAP WebClient UI drop down list(下拉列表)的一个故障和解决方法-阿里云开发者社区

开发者社区> jerrywangsap> 正文

SAP WebClient UI drop down list(下拉列表)的一个故障和解决方法

简介: SAP WebClient UI drop down list(下拉列表)的一个故障和解决方法
+关注继续查看

Issue description

Today I received a ticket with priority very high complaining that the drop down list for Business Role in Work center “Sales Operation” is empty:


image.png


However, Using my user I could indeed see lots of drop down list entries there:


image.png


Issue analysis

I didn’t start debugging immediately but made the following analysis beforehand:


(1) I could reproduce this issue in my laptop with my colleagues’ user


Based on this finding I made the following comparison between my colleague’s user and mine:

a. compare the authorization settings:

result: The two are exactly the same ( both copied from the same user group and we didn’t have authorization to make changes ).

Also there is no corresponding entries found in SU53 when I test with my colleague’s user.

b. compare the user parameter in tcode SU3

result: no difference found related to this issue

c. compare the business switch setting

result: the same setting for both user


(2) compare the final native html source code


I do believe there must be differences when the page is rendered via different users. So I use the development tool ( click F12 ) in IE, and soon found the difference:


This one is the html source code generated by my user and it works perfectly:


image.png


And this below is the one generated by my colleague’s user. The title are completely missing!


image.png


(3) Use mini-system approach to isolate and locate root cause


Since this issue occurs in CRM Organizational Model management and the underlying business model is huge and complex. In this situation I always prefer to use mini-system approach I described in this blog to try to make the issue also reproducible in the small nutshell. At least I could have the following benefits from the nut shell:


a. the nut shell could eliminate all impacts from unrelated components so that I could concentrate on the key part of program which might lead to the issue

b. the nut shell makes debugging be more efficient. For example sometimes I have to debug how does webclient framework class reacts to my input for my UI component, the method is so generic so that it would be triggered too frequently( like method PROCESS_NAV_QUEUE of class CL_BSP_WD_VIEW_MANAGER, which have helped me to resolve many issues


image.png


). Using nutshell I do not need to press “deactivate all BPs again and again.


image.png


I just spent 5 minutes to build a nutshell, which contains a view, a value node and one attribute. The attribute contains GET_V and GET_P method whose source code are copied from standard Org management UI component.



image.png

The nutshell in the runtime looks like below. The issue could be reproduced within it by using my colleague’s user.


image.png


(4) Debug the nutshell


When I debug the GET_V, I soon found the root cause:

The following code plan to retrieve profile and description from table crmc_ui_prof_t:


image.png


profile will act as drop down list key and description as drop down list value:


image.png


Unfortunately between profile and description column in table crmc_ui_prof_t there is another column LANGUAGE:


image.png


As a result the select statement does not work as expected at all. The SELECT xxx INTO CORRESPONDING FIELDS OF TABLE must be used instead.


image.png


(5) why I could see entries with my own user?


First of all, the entries displayed with my own user are not correct at all, they are just the wrong entries populated in internal table LT_ROLES, column PROFILE in screenshot above. In the wrong implementation, only drop down list key is filled with the incorrect entries.


For my user, I have enabled that key will also be displayed in dropdown list, so I could see the incorrect keys in UI. However my colleague didn’t enable this so he could only see nothing there, since the drop down list value is not filled due to wrong implementation.


image.png


(6) Why the native HTML source code is different based on different personalization setting?


Why my user could see the not initial title attribute in native html source code but my colleague’s user could not?


It is related to your personalization settings regarding whether dropdown list key must be displayed or not.


Just set a breakpoint on method CL_THTMLB_PERSONALIZATION~GET_DDLB_KEY_MODE, start the nutshell.


It stops at the place where the drop down list UI element is to be rendered. The callstack is also very helpful if we would like to study how the UI element defined by SAP tag like chtmlb, thtmlb is finally converted to html source code.


image.png


This setting is evaluated here and populating drop down list entries accordingly:


image.png


All the entries to be displayed in drop down list is available in the current callstack:


image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10099 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13897 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
9161 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
7504 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
22415 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
4511 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7366 0
+关注
2628
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载