SAP CRM WebClient UI和Hybris Commerce的懒加载机制

举报
汪子熙 发表于 2022/02/17 21:28:09 2022/02/17
【摘要】 在WebUI里,如果不勾上assignment的Display Expanded, 在runtime时就不会有到后台取assignment block数据的roundtrip.在Hybris server安装folder下面的这些module也是按需load的,比如我按照Tomcat的配置文件里的path /backoffice:用url localhost/backoffice试图访问ba...

在WebUI里,如果不勾上assignment的Display Expanded, 在runtime时就不会有到后台取assignment block数据的roundtrip.

在Hybris server安装folder下面的这些module也是按需load的,比如我按照Tomcat的配置文件里的path /backoffice:

用url localhost/backoffice试图访问backoffice module, 发现浏览器很长时间都没有任何显示,在tomcat的log里能看到很多关于backoffice资源文件load的operation, 大概需要几分钟时间才能加载完毕该module:


我们在ABAP Development Tool里编写SAP CDS view,为视图维护这些以@开头的注解,同Java Spring里广泛应用的annotation一样,都是一种为development object维护元数据的方式。

如上图所示,我维护了五个不同的注解,一旦保存,这个cds view的源代码被发送到ABAP后台,通过CL_DD_DDL_HANDLER解析,DDL此处是Data Definition Language的缩写。

这个类的ANNOTATIONS字段包含了一个内表M_ENTRIES,里面的内容即代表五个被解析出来的注解。

cds view所有支持的annotation都在这个ABAP接口定义的常量里了:

if_dd_ddl_annotations

比如下图的if_dd_ddl_annotations=>AbapCatalog_sqlViewName就代表我在CDS view源代码里申明的注解:@AbapCatalog.sqlViewName: ‘znaming’


而ABAP Development Tool里采用文本方式编辑的ABAP CDS view,如何被ABAP后端解析的呢?通过这个CL_DD_DDL_HANDLER~GET_OBJDEF_FROM_SRC方法里的第163行parse_cds解析。

这个方法是在kernel端实现的,能高效的把文本格式的CDS view源代码解析成ABAP结构:

如下图所示:




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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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