‎2009 Mar 10 2:17 PM
Hi experts,
I've got a performance problem with a custom transaction my team developped. The transaction shows an ALV tree based on class CL_GUI_ALV_TREE. We've got a contextual menu with a function which allows to modify some information at the node level. After the modification, we need to refresh the display to make the new data visible. The problem is that the tree display the whole OM structure, which is approximately 9000 organizational units.
The current code roughly does the following:
- loops on all nodes and executes method delete_subtree and then does a cl_gui_cfw=>flush (within the loop)
- loops on the data table add does a add_node
- executes method set_screen_update
- executes method frontend_update
It looks to me that the loop which executes the delete_subtree and the flush is very time consuming. I am wondering if it can be changed. I have read a lot about various methods but as i'm not ABAPer i'm getting lost.
What is the best method to refresh an ALV tree after a single node modification ? In the worst case, within the loop i described, is the flush required or can it be executed after the loop ?
Many thanks,
Sylvain.
‎2009 Apr 21 8:59 AM
Hi.
Try With this Method
REFRESH_TABLE_DISPLAY - Redraw Tree
Salil...
‎2009 Apr 21 8:59 AM
Hi.
Try With this Method
REFRESH_TABLE_DISPLAY - Redraw Tree
Salil...
‎2009 Apr 21 2:10 PM
Since you are talking about tree , I think you could use lazy load ( load only first level data ) which will reduce most of data transfer from db.
Also OM have such kind of method read only root node.