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

SAP CRM Application Extension Tool(AET)扩展字段的渲染原理

阅读更多

Recently I am doing an S4 project and I have to figure out how extension fields created by S4 extension tool is rendered in Fiori UI. It turns out that when end users add extension field in S4 Fiori UI, the UI itself is not changed at all.

 

 

Instead the detail information regarding this extension field ( label, data type, in which UI it is put etc ) are recorded into a repository in the backend server. In the runtime when the UI with extension field is rendered, this detail information is retrieved from backend repository to dynamically render the extension field in Fiori UI. This merge process is done every time the UI is displayed.

Naturally I begin to think how extension field created by CRM Application Extension Tool is rendered in Web Client UI.

In order to figure it out, first I create an extension field in CRM Product overview page:

 

 

Then I click F2 to find out its technical name and UI context ID.

 

 

Open UI Component workbench, the layout of view PRDHS/Header comes purely from configuration data. So just debug line 11 to check where this configuration xml data is stored.

 

 

The answer is from table BSPC_DL_XMLSTRX2.

 

 

This could be confirmed by checking it with context id we find via F2.

 

 

From the row read from this table, I can find the corresponding entry for extension field.

 

 

Based on this XML, Web Client UI framework now has enough information to render html page.

Just as introduced in this blog that for UI5, each kinds of UI control has its specific render which is responsible to convert UI5 control instance to native HTML source code, here CRM Web Client UI has similar logic.

 

 

In this class in line 114 below, the XML data is converted to final native HTML source code

 

 

Go deep into this method, the logic is the XML data is parsed and corresponding UI element instance is created based on settings in XML data.

 

 

All created element instances are stored in an internal table LT_RENDERER for later conversion.

The highlighted entry in below screenshot represents the UI element for extension field I created.

 

 

Then the internal table LT_RENDERER is LOOPED, render class for each UI element is called to generate HTML source code.

 

 

Below screenshot is the result HTML source code generated for the extension field:

 

 

<span class="th-tx th-tx-value th-tx-nowrap"  style="width:100%; "  title="test by IMS2 ffff fdggfdg ttt" id="C30_W112_V113_product_ext.zzbfld0000nx">test by IMS2 ffff fdggfdg ttt

Once all conversion are done, check the content in variable lv_html in HTML view in debugger, the extension field is already there. This is also end user will see in browser finally.

 

 

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

0
0
分享到:
评论

相关推荐

    AET活性边表法

    本篇文章将深入探讨AET法的基本原理、实现过程及其在C#编程语言中的应用。 ### 1. AET法基本原理 AET法的核心思想是将多边形的边界边按照与扫描线的交点顺序组织成一个数据结构——活性边表。当扫描线从上到下移动...

    AET边表的X扫描线转换源代码

    在实际应用中,AET和X扫描线算法常用于游戏引擎、图像处理软件和3D渲染等场景。它们可以有效地处理复杂图形的填充,尤其是在硬件加速不可用或性能有限的环境下。通过理解并实现这样的算法,开发者可以深入理解计算机...

    AET边表填充

    使用AET边表法对任意多边形填充,多边形没给出,可自行设计几个文档数据,以验证成功

    AET.tar.gz

    AET在这里可能代表“自动化测试工具”(Automated Testing Tool),根据描述,这是一款Python语言编写的测试工具。 Python是一种广泛使用的高级编程语言,它拥有丰富的库和框架,能够支持各种任务,包括创建高效和...

    aet.zip_.net编程_The Business_aet

    标题中的"aet.zip_.net编程_The Business_aet"表明这是一个与.NET编程相关的项目,具体可能是一个业务管理系统,其中"The Business"可能是指电信行业的商业运营。这个压缩包包含了一系列的PBL(Progress数据库对象)...

    brutus-aet2_daughtervyb_zip_brutus_

    Brutus program actived

    TI1-TMS28F008AET.pdf

    本文档介绍的是TI公司的TMS28F008AET芯片,这是一款高性能、低功耗的闪存存储器。该芯片具有多种组织结构,包括1048576位(1MB)的8位宽组织、524288位(512KB)的16位宽组织等,适用于不同的数据存储需求。 阵列...

    brutus aet2.7z

    超级网络解密之王—Brutus ,Brutus可以说是能够破解任何认证系统的密码,像一般的认证系统如Telnet、FTP、POP3等基于明文的密码...不过话说回来,如果认证系统是使用了SSL之类的加密系统,那么Brutus就无用武之地了。

    aet:AET-一种检测网站上视觉变化并执行基本页面运行状况检查的系统

    AET被设计为一种灵活的系统,可以根据给定项目的回归要求进行调整和定制。 该工具的开发旨在帮助前端客户端对网站或投资组合进行布局回归测试,从本质上评估网站从一个快照到下一个快照的影响或变化。AET背后的哲学...

    PyPI 官网下载 | aet-0.1.3-py3-none-any.whl

    标题中的"PyPI 官网下载 | aet-0.1.3-py3-none-any.whl"指的是一款名为AET的Python库,版本号为0.1.3,该库已打包成`.whl`格式的文件,可以在...如果你打算使用AET库,建议先阅读这些资料以了解其工作原理和适用场景。

    区域填充三种方法的原理

    "区域填充三种方法的原理" 区域填充是指在一个有界区域内填充某些颜色或图案。区域填充有多种方法,本文将详细介绍三种常用的区域填充方法:多边形扫描线填充算法、边缘填充算法和种子填充算法。 多边形扫描线填充...

    aet-calc:基于浏览器的心率漂移计算器,可确定有氧阈(AeT)

    AeT计算器道格拉斯·沃森(Douglas Watson),2020年5月麻省理工学院执照这是一个基于浏览器的工具,可以计算在GPS手表上记录的活动期间心率漂移时的心率漂移。 此指标用于确定您的有氧阈值(由上坡运动员定义): :...

    AET-一种检测网站视觉变化并执行基本页面健康检查的系统-Java-JavaScript-下载

    标题中的"AET"代表自动化视觉测试(Automation for the Eyes Testing),这是一个用于检测网站视觉变化和执行基本页面健康检查的系统。这个系统结合了Java和JavaScript技术,为用户提供了一种高效且可靠的网页质量保障...

    AE插件-E3D三维模型 Element 3D v2.2.3 (2192) Win支持多帧渲染

    新版E3D插件具有多帧渲染功能,加速渲染! MFR多帧渲染性能优势:由于AE可以开始在您的所有处理器内核上渲染多个帧,因此依赖于您的CPU的插件将变得更快!新的渲染管道比以前的方法更智能,因为它共享内存并动态分配...

    高级逃逸技术(AET)的分析.docx

    高级逃逸技术(AET)的分析 高级逃逸技术(AET)是指一类可以躲避检测系统的技术,这类技术可以对企业的信息安全系统构成严峻的挑战。随着信息科技的发展,计算机的应用范围已经遍及世界各个角落,企业都纷纷依靠IT...

    AET

    标题"AET"可能指的是"Advanced Encryption Technology",这是一种高级加密技术,通常用于保护数据安全,尤其是在数字通信和存储中。AET可能涉及到多种与信息安全相关的概念和技术,包括但不限于密码学、对称加密、非...

    AET - Advanced Editor's Tool-crx插件

    语言:中文 (简体) Tool for Editing Douban Moive Subject Efficiently. 功能:1. 在 IMDb 页面显示豆瓣电影条目链接;2. 豆瓣电影条目编辑页各种优化;3. 创建豆瓣电影条目时有IMDb编号的,自动补充信息。

    aet_1123_形码和物流包装技术.pptx

    aet_1123_形码和物流包装技术.pptx

    OfficeHomeDataset_Aet_Clipart_Product.zip

    Office_HomeDataset数据集,参考参考http://hemanthdv.org/OfficeHome-Dataset/,只有Aet、Clipart、Product,只能1GB,Real World另外传

    aet%tzlu创建检调对接工作机制有效化解矛盾纠纷.doc

    aet%tzlu创建检调对接工作机制有效化解矛盾纠纷.doc

Global site tag (gtag.js) - Google Analytics