您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何進行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的內存清理策略分析有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。