如何进行SAP CRM WebClient UI的内存清理策略分析
今天就跟大家聊聊有关如何进行SAP CRM WebClient UI的内存清理策略分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
如果我们搜索了5个PPR并转到帐户,然后再次转到PPR,搜索结果仍然存在。
为什么这两种导航会导致不同的行为?
我们必须记住一些要点:
每次您离开当前视图时,都会调用WD_DESTROY,可以是子视图自己的重定义实现,也可以是父视图的默认实现。
DESTROY method of context node class will be called one by one.
In PPR case, since RESULT node in view controller is mapped to RESULT in component controller via context binding, so collection wrapper will not be cleared.
Instead it will just clear the context node reference itself.
Let’s record down the real BOL collection in collection wrapper before CLEAR me->typed_context.
{O:1253*\CLASS=CL_CRM_BOL_ENTITY_COL}
After clear is executed, we check {O:1253*\CLASS=CL_CRM_BOL_ENTITY_COL} in debugger:
The 5 PPR BOL entities are still there:
这意味着WD_DESTORY将只清除上下文节点引用本身,而不清除BOL包装器中的真实BOL内容。
只有在以下情况下,才会清除BOL内容:
执行导航时,将引发框架事件:
CL_CRM_UI_SESSION_RESTART works as event handler and will clear bol buffer by evaluating flag gv_bol_reset_requested.
In lv_bolcore_reset the 5 PPR entities will be deleted in BOL container.
So now question is when is gv_bol_reset_requested set?
For example if you click “Home”,
Framework will evaluate if the navigation target is a Workcenter.
If so, the framework event before_context_change will be raised.
The event handler for it will simply set restart_requested flag to ‘X’.
Later this flag will be evaluated and set gv_bol_reset_requested.
如果只单击工作中心视图,例如“Accounts”,则不会执行第91行,因此请求的gv_bol_reset_将始终等于abap_false。
看完上述内容,你们对如何进行SAP CRM WebClient UI的内存清理策略分析有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341