ABAP webdynpro的view navigation和WebUI的view navigation
虽然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秒:
- 点赞
- 收藏
- 关注作者
评论(0)