`
JerryWang_SAP
  • 浏览: 1001075 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

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:

 

 

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的原创文章,请关注公众号"汪子熙":

0
0
分享到:
评论

相关推荐

    CRM7.0 WebClient UI config

    WebClient UI是SAP CRM的一个核心组件,提供了一个基于Web的交互界面,使得用户能够访问和操作CRM系统功能,无论他们身处何地。 首先,我们要理解UI Guidelines的重要性。"UI Guidelines for CRM WebClient User ...

    Creating a Dropdown in SAP CRM WebUI.docx

    在SAP CRM WebUI中创建下拉列表是一个关键任务,特别是在设计用户界面以提供更高效、用户友好的交互时。本教程将引导你通过一系列步骤来实现这一目标,特别是针对SEX(性别)属性创建一个下拉框。 首先,你需要获取...

    SAP CRM WebClient UI cross component跳转的一个具体例子

    Result list是model在ICQR里面,如果点service,会navigate到service detail page,这个service detail page是做在PRD02OV上,所以这个navigation是cross component navigation: Cross component navigati

    WebClientDemo_webclient_

    在.NET Framework中,`WebClient`是System.Net命名空间下的一个类,它提供了一种简便的方法来上传和下载数据,如文件。这个示例项目包括多个文件,用于构建一个具有用户界面的下载管理器。 首先,`DownloadManager....

    WebClient访问间歇性返回403解决方案.docx

    WebClient 是一个常用的网络访问类,它可以模拟浏览器的行为来访问网页。然而,在某些情况下,WebClient 访问间歇性返回 403 错误,这种情况非常让人讨厌。 分析错误信息,我们可以发现,403 错误是由于权限设置...

    SAPCRM基础培训.doc

    在SAP CRM基础培训中,WebClient UI(Web客户端用户界面)是一个重要的学习焦点,它是用户与系统交互的主要界面。下面我们将深入探讨WebClient UI的相关知识点。 WebClient UI的发展历程是从GUI(图形用户界面)...

    WebClient下载文件展示进度条

    下面是一个完整的示例,展示了如何在WinForms应用程序中创建一个简单的进度条,并使用WebClient下载文件: ```csharp public partial class MainForm : Form { private WebClient webClient; private long ...

    SAPCRM基础培训教材.doc

    SAP CRM(Customer Relationship Management)是SAP公司推出的一款企业级客户关系管理解决方案,旨在帮助企业优化销售、服务和市场活动。本篇将深入探讨SAP CRM的基础知识,包括WebClient用户界面的发展历程、特性、...

    C#中WebClient实现文件下载

    你可以通过调用其`DownloadFile`方法来下载一个文件,该方法接受一个URL和本地文件路径作为参数。例如: ```csharp using (WebClient wc = new WebClient()) { wc.DownloadFile("http://example.com/file", ...

    C# WebClient 上传文件

    ### C# WebClient 上传文件知识点解析 ...最后,虽然`WebClient`类提供了一个简单易用的接口,但在某些场景下,可能需要更复杂的控制和配置,这时可以考虑使用`HttpClient`等更现代的API来进行文件上传。

    C#通过webclient下载demo

    它有两个重载版本:一个同步版本和一个异步版本。 - 同步版本:`DownloadFile(String address, String fileName)`,这个方法会将指定URL的资源下载到本地文件。 - 异步版本:`DownloadFileTaskAsync(Uri address, ...

    webclient 控件

    文件列表中的"IESOperation.dll"可能是与WebClient相关的一个扩展库,提供了更高级的功能,比如模拟浏览器行为、处理Cookies、管理会话等。这种第三方库可以帮助开发者更方便地处理复杂的Web交互任务,而"使用说明....

    WebClient上传下载文件

    在IT行业中,网络通信是应用程序之间交互的重要方式。在C#编程环境中,`WebClient`类...在"FileUpAndDown"这个压缩包文件中,可能包含了一些示例代码或练习,可以帮助你更深入地理解`WebClient`的工作原理和使用方法。

    wphone WebClient和HttpWebRequest

    它提供了一个异步的下载数据的方法,比如`DownloadStringAsync`和`DownloadDataAsync`,这些方法在后台线程中执行,不会阻塞UI线程。然而,WebClient对于自定义HTTP头和复杂的HTTP操作支持有限,例如设置Cookie或...

    UI Guidelines for CRM WebClient User Interface

    UI Guidelines for CRM WebClient User Interface

    C# 使用WebClient类 下载网络指定资源

    在本教程中,我们将深入探讨如何使用WebClient类来实现一个功能完善的网络资源下载器,包括实时显示下载速度和进度,并在下载完成后提供提示。 首先,让我们了解WebClient类的基本用法。WebClient是System.Net命名...

    WEBCLIENT使用方法

    【标题】:“WEBCLIENT使用方法” 在C#编程中,`WebClient`是一个非常重要的类,它位于`System.Net`命名空间下,主要用于处理HTTP请求,执行下载或上传操作。`WebClient`类提供了简单易用的方法来访问Web资源,如...

    WebClient-2.2.5.exe

    WebClient安装文件。 在Java世界中,有许多用于发送HTTP请求的库。比较三种流行的HTTP客户端:WebClient,HttpClient和OkHttp。WebClient是Spring 5中引入的非阻塞,反应式的Web客户端。它是在Project Reactor和...

    WebClientDemo

    【WebClientDemo】是一个示例项目,展示了如何在Eclipse集成开发环境中使用`WebClient`进行网络通信。`WebClient`是Java中的一个类,主要用在Spring Framework的WebFlux模块,它允许开发者发送HTTP请求并处理响应,...

Global site tag (gtag.js) - Google Analytics