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:

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

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:

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

(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

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

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.

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

(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:

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

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

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.

(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.

(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.

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

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

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

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

  1. 关于通过webclient和JSON格式报文与服务器之间通讯的解决方法和遇到的难题

    关于通过webclient和JSON格式报文与服务器之间通讯的解决方法和遇到的难题 参考文章: (1)关于通过webclient和JSON格式报文与服务器之间通讯的解决方法和遇到的难题 (2)http ...

  2. SAP WebClient UI和business switch相关的逻辑介绍

    Do you know the meaning of these two checkboxes in F2 popup? Let's first learn some prerequisite kno ...

  3. 在SAP WebClient UI里使用AJAX进行异步数据读取

    For POC purpose I need to implement the AJAX functionality in Webclient UI component. The UI compone ...

  4. SAP WebClient UI界面元素ID生成的逻辑分析

    If we open a WebClient UI page with Chrome and inspect its UI element via Chrome development tool, w ...

  5. SAP WebClient UI开发工具中attribute文件夹展开的实现原理分析

    For project reason I need to figure out the logic how the field list is assembled when folder " ...

  6. 在SAP WebClient UI里显示倒数计时的UI

    First let's have a look at what is achieved: Once you click work center "Jerry count down" ...

  7. SAP Webclient UI和Fiori UI的混搭

    CRM UI的作用简单来说就是定义report. HANA那边定义了VDM和Query哪些,但是Fiori这边不直接访问HANA,所以CRM这边的UI可以创建report把HANA的那个信息存在rep ...

  8. QT在VS环境下双击*.ui打不开Qt designer(Qt设计师)的解决方法

    今天刚学QT,并在VS2013环境下完成了QT5.6.2的配置. 在VS下,新建Qt GUI Application后,在解决方案资源管理器中双击 *.ui 文件没反应, 网上的解决方法很少,但找到有 ...

  9. SAP CRM webclient ui drop down list key mode

最新文章

  1. 通过安装scl软件集,使用高版本gcc的方法
  2. CSS中background-position的使用
  3. 实现 laravel 的artisan
  4. 搞清Image加载事件(onload)、加载状态(complete)后,实现图片的本地预览,并自适应于父元素内(完成)...
  5. JavaScript DOM 4 - 属性 attribute vs property
  6. Android 9 带着 AI 来了,为什么我们还停留在 6?
  7. 纯JS日历控件自动输入日期到TextBox、文本框当中
  8. 使用 JavaScript File API 实现文件上传
  9. 软件外包中常见的七个错误之一 - 不懂用户需求
  10. R语言大作业(二):上海市人口普查数据分析
  11. amazon linux ami root 密码,Amazon Linux AMI 2015.09 (HVM)平台搭建lamp
  12. 产品经理学习一(定义、分类、成员配合、调研、3D文档、竞品分析、SWOT分析)
  13. 反射中的SetValue和GetValue
  14. 【安全资讯】incaseformat蠕虫病毒大爆发!20s删除用户文件
  15. 重磅 ! CVPR2020最新计算机视觉论文代码分类打包下载
  16. linux 磁盘整理命令,Ubuntu磁盘整理命令汇总
  17. SSM框架和SSH框架的详细对比
  18. 计算机网络学习笔记:基础知识
  19. 探讨STM32代码运行位置
  20. uniapp项目统计2.0

热门文章

  1. Educational Codeforces Round 9 A. Grandma Laura and Apples 水题
  2. vs2013+EF6+Mysql
  3. [js插件]JqueryUI日期插件
  4. /proc/sys/net/ipv4详解(2)
  5. openbsd 禁止root远程登陆
  6. Ospf在广播网络中建立邻居关系的详细过程
  7. 用VS Code打造最佳Markdown编辑器
  8. set / ... 去重的方法
  9. 100个程序员学习的网站
  10. 上海五校赛 丢史蒂芬妮