Skip to Content

Lite Optimize – A little guide to the big things you should know


Anyone who works with BPC will no doubt be aware of the Lite Optimise process.  It’s easy to trigger, runs relatively quickly and significantly improves performance.  Essentially, a Lite Optimise roll’s up and compresses data in the BPC model / cube then updates the DB Statistics.

However, if you’re new to BPC, there are a few other things you need to be aware of in order to help you understand the process a little more.  There may be more things to add to my list so feel free to comment on the post!

Be aware if people are trying to save !

If you were to take a closer look at the steps involved in a lite optimise via the process chain (/CPMB/LIGHT_OPTIMIZE) you will see a couple of important steps:


Notice the highlighted steps above, in order for the roll-up and compression to work, the cube needs to be taken out of planning mode.  It is this planning mode which allows your Input Schedules to write updates back to the cube in real-time.

So, it’s very important to understand that if the Lite Optimize process is running and the cube is not in planning mode the user will not be able to save data !!

Currently, BPC doesn’t do a very good job of letting you know why you can’t save (e.g., because a Lite Optimize is running) so be sure to trigger it when saving activity is at it’s lowest!

Big data loads require a Lite Optimise

Any large data changes to a model need to be followed by a Lite Optimize.  This could include data loads from BW, clear and copy packages or substantial user submissions via Input Schedules.  You will begin to notice deterioration in performance the longer you go without a Lite Optimize!

In our environment, we have tagged a trigger for the Lite Optimize to kick off after every transactional load process into BPC from BW.  Admin users are also advised to kick off a Lite Optimize after running copy/clear/load operations  The next point explains how this can be done.

Trigerring a Lite Optimize outside of the EPM add-in

It is true, the lite optimize can be manually triggered or scheduled from the EPM add-in.  But what if you have a separate BPC process chain and want to automatically trigger a lite optimise once it is complete ? (e.g., daily data loads from BW into BPC)

You can do this as follows:

1. Create a new process chain with a start process

2. Create a new ABAP Program

3. Set the ‘Program Name’ to ‘UJD_TEST_PACKAGE’

4. Create a new ‘Program Variant’

5. Fill in the details (e.g., Package ID = Lite Optimize, Package Group ID = Other Function (or whatever folder the Lite Optimize package is stored within EPM)

6. Reference the newly created chain at the end of your other process chains.

If you do a search on UJD_TEST_PACKAGE you will find a lot more detail on these steps which all also allow you to trigger any package from BW !

Get rid of the 0’s!

Whenever you run a clear package, you’re not actually deleting data from the cube.  Infact, you are settings key figures to 0.  This would explain why you cannot delete a member from a dimension after ‘clearing’ all data. There is still data against that member, albeit zero’s!

A great way to clear these 0’s is to update your Lite Optimize process chain to clear 0’s as part of the Collapse step in the chain /CPMB/LIGHT_OPTIMIZE.


You should really avoid using the selective deletion function on the cube!  One slip of the hand or an incorrect selection of data and you’re in a spot of bother.

Lite Optimise before you back up an environment!

UJBR is a great BW program which allows you to backup and restore your BPC environment.  If you don’t know about this, you should certainly do some searches to bring yourself up to speed!  We run this every night as an automated job to ensure we have a rolling 7 day backup of our BPC environment which we can easily roll back to without impacting the rest of BW.

Anyway, it can take quite a long time to backup your environment if you have a lot of data.  Using a Lite Optimize immediately before a backup will significantly improve your wait times !

That’s all that comes to mind right now.  I hope this helps those of you who are starting out in BPC.  I certainly could have done with these tips early on !

As already mentioned, if you can add to this in anyway, please comment below.


You must be Logged on to comment or reply to a post.
  • Hi Ian,


    Very good article! It can be even better if you add:


    1. The explanation of Number of requests that you want to collapse parameter.

    2. The difference between BPC NW 10 and BPC NW 7.5 (In BPC 7.5 it was possible to eliminate zeros using this parameter in the DM advanced script: TASK(/CPMB/LIGHT_COMPRESS,ZERO_ELIMINATION_ON,X), with BPC NW 10 this parameter has no effect).


    B.R. Vadim

    • Hi Vadim,


      I want to ask one query .


      We are on EPM 10 and processing large data in Revenue application. There are around 5 Data manager package in one single link. In 4th DM package we are pushing / inserting data of some bpc accounts to cost application / model.  Some times this insertion script behaves erratically. Some accounts data not getting copied to cost application.


      If I copy same patch into test script and execute in revenue appl. , my data get inserted.


      I am planning to add lite optimize package before this copying link.



      Can you please guide me on this.




      • Hi Milind,


        Please describe in details what do you mean by this: "Some times this insertion script behaves erratically. Some accounts data not getting copied to cost application."


        You have error messages or?



        • Hi Vadim,


          Thanks for your prompt reply on week ends. Actually , I was busy in my ISMS training. Sorry for late update.


          I am processing data in revenue application using 7/8  custom data manager packages in a single link. When I am processing JAN 2014 ACtual category data , account A & B successfully get copied to cost application. But for the month of FEB 2014 ACTUAL category, 'A' account get inserted properly and 'B' get inserted only for rptcurrency 'INR' not for 'LC'.


          when I checked my data in revenue appl , for account 'B' for both the categories inr / lc . data is properly available on desired version.


          When I copy my patch from custom script to test script and execute in revenue application, i got the data for ''B' account for both the currencies. Why system / script is not working for FEb 2014.


          Following is my code  :


          //*SKIP_DIM = SEGMENT_NEW

          *XDIM_MEMBERSET BFL_ACCOUNT = 900003

          *IS 900003


          In my REvenue appl link , there are 8 custom data manager packages as below :


          1] Copy version 0 data to version 1 for actual data

          2] copy master data from version 0 to ver 1.

          3] process data before currency conversion.

          4] currency conversion for master rate.

          5] currency conversion for actual rate.

          6] process data after curr conversion.

          7] copy data from revenue to cost appl.

          8] copy data from revenue to planning appl.


          Thanks for your guidenace.


          Best Regards,


          • Hi Milind,


            There is nothing wrong with your script except unnecessary *COMMIT (useless with WHEN/ENDWHEN). Your scripts have to work consistently unrelated to Light optimization. Please, open a new discussion and provide more info.



    • Hi Vadim, what would be the recommendation to determine the best setting for nr. of requests not to collapse?

      SAP note 1565292 doesn't currently specify how to set this best...

  • Hi Ian ,


    very good artical about light optimization .. but I need some information what is background program which is triggered to this light optimization variant "/CPMB/LIGHT_COMPRESS"..


    Thanks & Best regards,

    Srikumar Anamala.

    • Hi Srikumar


      I'm not sure I fully understand your question...  However, the following details may help:


      Lite Optimise Process Chain: /CPMB/LIGHT_OPTIMIZE


      This is triggered with from the 'Lite Optimise' data manager package or via a standard BW abap program making use of UJD_TEST_PACKAGE


      Hope this helps


  • Hi People,


    In a BPC cube is allowed to make the compress directly in bw backend? For example, first taking out the cube of planning mode then executing the compress. Could it cause any problem?




    • Hi Bruno


      As long as the cube is out of planning mode then you can perform the compress as if you were administering any other cube.


      If you take a look into the /CPMB/LIGHT_OPTIMIZE chain you will see that the compression stage is the same as if you were performing the step on a 'standard' cube.


      However, I would suggest running a Lite Optimise instead of a manual compress of data so that you achieve the full set of optmising procedures (e.g., compress, update statistics, etc)



  • Hi Guys,


    Do you know if I create a scheduled Lite Optimize is there a way to generate an email or SMS alert to let me know the job is complete or if there was an error?


    We run our Optimize everyweek at 1am in the morning but we need to ensure it is completed without errors, without having to stay online to check it.


    You help would be fab