SAP CRM WebClient UI的内存清理策略分析

简介:

If we searched 5 PPR and go to Account and then go to PPR again, search results are still there.

Why are the two navigation causing different behavior?

Some key points we must remember:

Every time you navigate away from current view, WD_DESTROY will be called, either the child’s own redefined one or default implementation of parent.

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:

That means WD_DESTORY will only clear context node reference itself, but not the real BOL content in BOL wrapper.

The BOL content will only be cleared when:

When navigation is being executed, framework event will be raised:


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.

If you just click a work center view for example “Accounts”, line 91 will not be executed and thus gv_bol_reset_requested will always equal to abap_false.

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

相关文章
|
2月前
关于 CRM WebClient UI 能够被 AET 工具扩展与否的讨论
关于 CRM WebClient UI 能够被 AET 工具扩展与否的讨论
28 0
|
6月前
|
存储
如何找出 SAP Fiori Launchpad 里点击 tile 之后,读取业务数据调用的是哪个 SAP 后台系统的 OData 服务试读版
如何找出 SAP Fiori Launchpad 里点击 tile 之后,读取业务数据调用的是哪个 SAP 后台系统的 OData 服务试读版
43 0
SAP CRM WebClient UI的内存清理策略分析
If we searched 5 PPR and go to Account and then go to PPR again, search results are still there.
119 0
SAP CRM WebClient UI的内存清理策略分析
|
Web App开发 JSON 前端开发
使用工具分析 SAP UI5 应用前端执行的性能问题
使用工具分析 SAP UI5 应用前端执行的性能问题
129 0
使用工具分析 SAP UI5 应用前端执行的性能问题
Fiori应用缓存清理的几种方法
Log on to your gateway system, use tcode /UI2/CACHE_DEL: first execute in test mode to check the current cache status:
Fiori应用缓存清理的几种方法
SAP CRM WebClient UI的工作中心加载逻辑
SAP CRM WebClient UI的工作中心加载逻辑
SAP CRM WebClient UI的工作中心加载逻辑
SAP CRM WebClient UI异常的持久化机制
SAP CRM WebClient UI异常的持久化机制
124 0
SAP CRM WebClient UI异常的持久化机制
SAP CRM WebClient UI的excel导出功能是否能启用,取决于这个逻辑
SAP CRM WebClient UI的excel导出功能是否能启用,取决于这个逻辑
SAP CRM WebClient UI的excel导出功能是否能启用,取决于这个逻辑
SAP OData执行的后台跟踪工具
Created by Jerry Wang, last modified on Jan 10, 2015
SAP OData执行的后台跟踪工具