当前位置:首页 > Web开发 > 正文

Jerry答网友提问:SAP CRM WebClient UI里的EXT,STRUCT等含义

2024-03-31 Web开发

2020年,Jerry会做一个新的测验考试,选择部分伴侣向我提出的问题,在公家号,常识星球或者微信圈子这些平台上果然回答,这样或许能辅佐到更多的伴侣。
具体说明参见我前一篇文章:

网友的提问:

技术图片

Jerry的解答:

以上截图是CRM系统里BSP_WD_CPMWB这个事务码进入之后,任意打开一个上下文节点(Context Node)看到的信息:

技术图片

STRUCT的含义?

技术图片

在Jerry之前的文章 提到这样一张图:

技术图片

在UI层的CRM BSP component的MVC设计里,Model,即Context node,绑定的是Business Object Layer的模型,因此Context node Attributes文件夹下面,以STRUCT开头的字段,意味着这个字段是绑定到BOL模型节点里的一个字段的,二者存在一一对应关系,如下图箭头所示。而下图蓝色字段LOCKED, 前面没有STRUCT前缀,说明这个字段并非来自BOL模型节点,而是开发者直接创建的,这种字段一般用于应用逻辑里存储姑且状态,或是代表当前应用的某个标识表记标帜位,没有对应的底层存储,在SAP很多产品里也称这种字段为transient field或者calculated field.

技术图片

展开某个字段,看到的GET, GET_M, GET_I, GET_V, GET_P, GET_A是什么意思?

技术图片

要回答这个问题,得从CRM WebClient UI页面的衬着方法说起。

技术图片

如上图这种视图源代码,使用的标签页不是HTML撑持的原生标签,,浏览器是无法识别和解析的,因此需要有一其中间层,或者说转换器,将这些SAP封装过的标签转换成浏览器撑持的原生HTML标签。

凭据这个转换器所处位置的差别,分为处事器端衬着和浏览器端衬着两种方法。SAP CRM WebClient UI基于SAP BSP技术——Business Server Page,光听名字就知道是在处事器端衬着了。而SAP UI5,是范例的浏览器端衬着,我们在其XML视图里书写的那些标签同样无法直接被浏览器使用,需要每个标签对应的衬着器,在浏览器端用JavaScript代码生成对应原生的HTML标签。

回到CRM WebClient UI,对付Attributes里的这些STRUCT字段们,我们在衬着出的最终页面里,有的是一般的输入字段,有的是超链接,有的是下拉框,有的不成编纂,SAP开发的转换器怎么知道要将每个字段衬着成什么样呢?

玄妙就在这些GET要领里。这里有一个小小的设计模式的思路在内,即SAP CRM WebClient UI的框架代码,卖力处事器端衬着80%的事情量,即把整个页面的框架搭出来,包孕一个页面有几多字段,字段之间的相对位置等。剩下20%的事情量,好比每个字段的类型,外不雅观等属性,这些信息框架不成能知道,也不应该知道,这些应该由应用措施供给接口(也可以理解成回调),在接口里实现这些属性,然后由框架挪用这些接口。我们可以把这个模式当作是设计模式里的一种——模板模式(Template Design Pattern).

看具体的例子。

双击进入CONFIG这个字段的GET_P要领里。P的意思是Property,属性。UI框架在衬着CONFIG这个字段时,会挪用GET_P_CONFIG这个接口,询问应用:你想把CONFIG这个字段衬着成什么类型(下图第4行的fieldtype)?

应用措施通过第五行的field_type_checkbox回答框架:我想把CONFIG字段衬着成checkbox, 托付了。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31619.html