In Integrated Planning – how to activate/deactivate data slice at RUNTIME I described how to create custom data slice based on class and deactivate/activate such data slice at runtime.
After a certain amount of time I have found out that performance of data slice deactivation/activation is extremely bad, especially if the cube has a lot of records.
I have tried to use very thin filter that retrieves a few records, but it seems that filter restriction doesn’t affect on planning function that deactivates/activates data slice.
Improve performance of custom data slice deactivation/activation function and make it to run over the records restricted by filter.
I’ve found out, in debugging process, that even if the filter is restricted for some values, the function runs, in one of runtime stages, on whole data in a real time cube and it makes performance to be very bad.
Also I’ve found out that one of the tables (E_T_REF_CHARSEL) of method IF_RSPLFA_SRVTYPE_IMP_EXEC_REF~GET_REF_DATA_SEL is empty and it makes the function to run over all data.
On other hand, there is another table (I_T_DATA_CHARSEL) in this method that contains current selection of active filter, but it is not used at all in the method.
All that we need is to assign I_T_DATA_CHARSEL data to E_T_REF_CHARSEL in method IF_RSPLFA_SRVTYPE_IMP_EXEC_REF~GET_REF_DATA_SEL and such assignment makes planning function to run over restricted slice of data.
Below is shown enhanced ABAP code of IF_RSPLFA_SRVTYPE_IMP_EXEC_REF~GET_REF_DATA_SEL method.