ABAP webdynpro的view navigation和WebUI的view navigation

举报
汪子熙 发表于 2022/03/28 17:35:24 2022/03/28
【摘要】 虽然ABAP webdynpro已经不是SAP未来主流的UX技术,但是在很多老的模块里使用还是很广泛。在[SAP help]里有关于这个应用的详细介绍:而ABAP webdynpro的技术很多地方实现都和WebUI非常类似.下图是ABAP webdynpro的navigate方法,实际操作是delegate到view的view manager:WebUI类似:Webdynprode navi...

虽然ABAP webdynpro已经不是SAP未来主流的UX技术,但是在很多老的模块里使用还是很广泛。

在[SAP help]里有关于这个应用的详细介绍:

而ABAP webdynpro的技术很多地方实现都和WebUI非常类似.
下图是ABAP webdynpro的navigate方法,实际操作是delegate到view的view manager:

WebUI类似:

Webdynprode navigate方法是把和navigation相关的数据填到一个line structure里,再insert到一个叫做navigation queue的internal table:

WebUI同样有这个navigation queue:

Webdynpro的navigation queue在此处逐一被执行:

WebUI的navigation queue在此处逐一被执行:

UI5 Repository

从本地通过Eclipse team provider上传到ABAP gateway system的UI5应用,都会自动生成一个UI5RepositoryPathMapping.xml文件,里面记录的是debug version的脚本文件名称和路径的映射关系。

manipulation utility:/UI5/CL_UI5_REP_PATH_MAPPER

MongoDB repository in SpringBoot

和ADBC与JDBC不同,通过MongoDB repository访问MongoDB数据库并不会在代码中出现用字符串拼接的SQL语句:

例如findByName的定义:

findByName的实现:

标题的两个方法作用相同。

Angular

在每一次Javascript代码执行序列执行结束后,Angular都去检查绑定的数据是否发生改变,通过调用scope.apply完成。scope. apply最后调用scope.digest()方法去更新bindings或者watchers。
看个例子:

关于scope.apply的工作细节,see my blog Compare Data Binding mechanism: SAPUI5 and Angular:

https://blogs.sap.com/2016/06/30/compare-data-binding-mechanism-sapui5-and-angular/

CRM WebClient UI

每次UI roundtrip结束之后,在UI框架DO_HANDLE_DATA的末尾会硬编码一行bol_core->modify(), 把BOL buffer里的change flush到Genil layer:

看一个实际例子:第14行的div绑定到了angular的模型字段message。
该应用启动后,屏幕显示第6行绑定的值:Waiting 2000ms for update。
然后启动第7行的setTimeout定时器,2秒后,执行定时器的回调函数, 在第8行将模型字段的值改成"Timeout called".

然而,在浏览器上我们没有观察到期望中的页面刷新,UI仍然显示Waiting 2000ms for update,而不是我们期望的Timeout called。
Solution:


打开C4C,即使什么都不干,也能观察到Chrome network里这些http请求:

注意请求发起者是NotifierHelper。这些请求用来干什么的?就是定时把C4C后台新产生的notification取出来显示在UI上。
登录C4C后,会渲染左边的toolbar,点击小红点,就会看到当前未读的notification:


看注释,轮询的间隔为120秒:


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。