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

SAP WebClient UI是如何维护表格选中状态的

阅读更多

I have been working as a Fiori application developer in SAP for almost two years, which means now I use Chrome development tool in my daily work for trouble shooting instead of ABAP debugger when I was working using CRM WebUI.

Yesterday I was assigned with an incident about CRM Lead application in WebUI, and I am glad to figure out that Chrome development tool can also do me a great favor for my trouble shooting in WebUI issue. I share with my experience learned in this blog.

Issue description

The incident complains that when a given row in Products assignment block is selected and Delete button in toolbar is clicked, nothing occurs.

 

 

My issue analysis process

I located the event handler of this delete button in toolbar:

 

 

And I find out that get_marked in line 21 return an empty BOL entity collection.

 

 

I debugged into get_marked, this method will only return those BOL entities as marked whose SELECTED equals to true. For Lead application, all the BOL entities which represent table entries in assignment block has SELECTED as false, as a result no BOL entity is returned – so nothing to be deleted.

 

 

However I have checked Opportunity application, the deletion works. The attribute for BOL entity is set as abap_true as expected.

 

 

What is the reason of this different behavior? Research how WebUI passes table selected row information to ABAP backend via Chrome development tool In WebUI I selected first row in table and click delete button in toolbar, then I observe this selected information is passed to ABAP backend via field name asC34_W111_V113_V120_prodtable_selectedRows and value as 1.

 

 

And in ABAP backend, all these http form fields passed from frontend UI are received and stored in variable lt_fields in line 25.

 

 

I download the content of lt_fields as excel and highlight the field for selected row index:

 

 

Then in ABAP backend, it is expected to populate the string “C34_W111_V113_V120_prodtable_selectedRows” to get the index by field name. From the code below we get: “C34_W111_V113_V120_prodtable“

 

 

The left string fragment “selectedRows” comes from constant gc_selected_rows. Now the selected row index is get by field name in line 14.

 

 

The original issue is: although we have table id “prodtable”,

 

 

however a wrong default id “Table” is passed in via iv_id and thus wrong field name is generated, so based on this wrong field name, no selected index could be queried:

 

 

The issue is already fixed via SAP note 2331513. The naming convention of capital characters in lv_name:

  • C: component
  • W: window
  • V: view

You can also find such id in generated html source code via Chrome development tool in Element tab: first click the small icon highlighted below and then click the UI area you would like to inspect:

 

 

Then in Elements tab, the html source code of the selected UI area will be displayed for you:

 

 

Further reading

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

0
1
分享到:
评论

相关推荐

    CRM7.0 WebClient UI config

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

    WebClientDemo_webclient_

    开发者可能在这个类中重写了WebClient的某些方法,比如`DownloadDataAsync`和`DownloadFileAsync`,以便在下载过程中能够实时更新UI状态。 `Form1.Designer.cs`和`Form1.cs`是主应用程序窗体的相关文件,Designer....

    SAPCRM基础培训.doc

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

    SAPCRM基础培训教材.doc

    WebClient UI的特点在于其用户界面的个性化、直观的导航和界面,以及快速的信息创建、维护和查看功能。 WebClient UI包含多种关键元素,如抬头和导航条、主页、工作中心页、搜索页、概览页、编辑页、编辑清单页、...

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

    Sent: Thursday, April 18, 2013 3:59 PM Subject: 为什么design time时候看到的是ICQR,点了service之后看到02QR的代码被call到 这是cross component navigation在起作用。 Result list是model在ICQR里面,如果点...

    WebClient下载文件展示进度条

    请注意,实际应用中可能需要处理错误和异常,以及考虑线程同步问题,确保UI线程安全地更新进度条。此外,如果要实现更复杂的功能,比如暂停和恢复下载,可能需要使用更高级的类如System.Net.Http.HttpClient,配合...

    Creating a Dropdown in SAP CRM WebUI.docx

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

    SAP CRM WebClient UI ON_NEW_FOCUS的用途

    Sent: Thursday, May 9, 2013 6:30 PM Subject: ON_NEW_FOCUS的用途 ROOT ———————————— Product ID PRODshortText ———————————— Product Description Genil Model hierarchy

    SAP_CRM中文自学笔记

    SAP CRM的基础知识通常包括对于其核心组件的理解,包括主数据(如账户、组织模型、产品等),交易处理、定价、开票、CRM中间件以及CRM WebClient UI。CRM中间件主要负责不同系统组件之间的信息交换,而CRM WebClient...

    UI Guidelines for CRM WebClient User Interface

    UI Guidelines for CRM WebClient User Interface

    C# WebClient 上传文件

    ### C# WebClient 上传文件知识点解析 #### 一、引言 在开发过程中,经常会遇到需要将客户端的文件上传到服务器的需求。C#语言提供了多种方法来实现这一功能,其中`WebClient`类就是一种非常简便的方式。本文将详细...

    C#中WebClient实现文件下载

    在C#编程中,WebClient类提供了一种简单的方式来实现文件下载。WebClient是一个高度封装的网络通信类,主要用于HTTP协议交互,包括上传和下载数据。以下是对标题和描述中涉及知识点的详细解释: 1. **WebClient下载...

    WebClient-2.2.5.exe

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

    WebClient jar包

    WebClient jar包

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

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

    webclient 控件

    在.NET Framework中,WebClient控件是一个非常实用的类,用于简化从Web下载数据的任务,尤其是在WinForm应用程序中。标题中的"webclient 控件"指的是这个内置的.NET类,它为开发者提供了简单的方法来执行HTTP操作,...

    WebClient 上传文件到 iis

    标题中的"WebClient 上传文件到 IIS"指的是使用C#中的`WebClient`类将本地文件上传到运行Internet Information Services (IIS)的服务器。`WebClient`是.NET Framework提供的一种简单方式,用于执行HTTP操作,如下载...

    C#通过webclient下载demo

    在这个"C#通过WebClient下载demo"中,我们将深入探讨如何使用`WebClient`来实现文件的下载,并关注如何在下载过程中显示进度。 `WebClient`类位于`System.Net`命名空间下,它提供了异步和同步方法来处理网络请求。...

    C#使用WebClient获取网页源文件例子

    在这个“C#使用WebClient获取网页源文件例子”中,我们将深入探讨如何利用`WebClient`来下载网页源代码,并进行UTF8编码的解码处理。 首先,`WebClient`类是`System.Net`命名空间的一部分,它提供了一个简洁的接口...

    使用WebClient实现文件下载

    在.NET框架中,C#提供了一种简单的方式来下载文件,这就是使用`WebClient`类。`WebClient`是System.Net命名空间的一部分,它提供了一系列方法和属性,方便开发者执行HTTP请求,包括文件的上传和下载。在这个场景中,...

Global site tag (gtag.js) - Google Analytics