SAP CRM WebClient UI的on_new_focus应该怎么理解

简介:

问题

我在做练习16时(第3步的e,f),发现有一句这样的描述:

Double click on method CONNECT_NODES.Make Value node ‘Competitors’
dependent from BTAdminH.
METHOD connect_nodes.
DATA: coll_wrapper TYPE REF TO cl_bsp_wd_collection_wrapper.
coll_wrapper = btadminh->get_collection_wrapper( ).
SET HANDLER me->competitors->on_new_focus FOR coll_wrapper ACTIVATION
iv_activate.
ENDMETHOD.

这种所谓的dependent关系我在debug时发现没发生任何的实际效果,按理说这里设置了handler为on_new_focus应该通过raise event来调用,但是其最后是通过直接调用方法名来调用的。你是怎么理解的?以及这里的所谓dependent有什么特别的应用场景么?

回答

UI上两个field放到同一个header view,比如product ID和product description( 相同level),但是他们绑的Genil mode里面的field却不是相同level,而是存在父子关系。
这种情况下需要用到connect_nodes. 目的是parent node发生变化时,自动刷新child node,确保ui上显示的两个field的value是正确的。

总之,如果UI上同一level的field来自不同的UI component context node,这些context node对应绑定到的Genil mode里面的node之间存在父子关系,则UI component context node里面所有的child context node都应该实现on_new_focus.

这是一个比较典型的例子:

你的疑问,我猜你是对这个例子里面直接call event handler,而不是在代码里面用raise event触发它,对吧?

你可以在connect_nodes和create_produom两个方法里面设置一个断点,当你在ui上创建一个新的product时候,后者会先触发,此时前者还未执行,因此new focus的event还未register。
而后者触发的原因正是这个代码里面manual call event handler的地方:

为什么要加21行呢?其实这就牵涉到model node和value node的区别。在product creation scenario里面,我们期望user在ui上的输入没有任何错误之后,才会真正走完4个level,最后在DB创建product。那么在ui 输入通过validation之前,所有ui输入都是存在value node里,然后当ui的输入通过validation 这一时间点之后,由value node转成model node。

2743 register了2818的new focus事件

这里2818 抛了new focus的事件,

2743 收到事件,处理:

你把你highlight的22~25注释掉会有什么问题?我在product的例子里在debugger里面跳过这行,然后再执行下去,似乎没问题。

本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。

相关文章
|
23天前
|
人工智能 搜索推荐 Serverless
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
52 7
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
|
1月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
27 0
|
19天前
|
存储
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
19 0
|
23天前
|
数据库
SAP CRM产品主数据无法根据产品描述字段进行搜索的原因
SAP CRM产品主数据无法根据产品描述字段进行搜索的原因
16 5
|
23天前
|
Web App开发 开发者 存储
介绍一个 webp 格式转 png 格式的软件:XNConvert
介绍一个 webp 格式转 png 格式的软件:XNConvert
25 6
介绍一个 webp 格式转 png 格式的软件:XNConvert
|
23天前
什么是 SAP ABAP 里的 Subscreen
什么是 SAP ABAP 里的 Subscreen
16 1
什么是 SAP ABAP 里的 Subscreen
|
1月前
|
开发者 UED
关于 SAP UI5 sap.m.Column 的 demandPopin 属性
关于 SAP UI5 sap.m.Column 的 demandPopin 属性
15 0
|
1月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
15 0
|
1月前
|
前端开发 JavaScript API
SAP UI5 sap.ui.require.toUrl 的作用介绍
SAP UI5 sap.ui.require.toUrl 的作用介绍
29 0
|
1月前
|
JSON 前端开发 测试技术
SAP UI5 sap.ui.core.util.MockServer.simulate 方法介绍
SAP UI5 sap.ui.core.util.MockServer.simulate 方法介绍
21 0