cancel
Showing results for 
Search instead for 
Did you mean: 

Problem removing zeros in a model - BPC 10 NW

Former Member
0 Kudos

Hi,

Working in a development environment, I´m storing a large quantity of zeros in the model when removing transactional data. Then, I´m not able to remove members of the dimensions because the systems says that the member has transactional data in one model (but they are zeros)

I ran lite and full optimize package but there´s no way to remove these zeros. Does anybody know how to solve it?

Thanks in advance,

Joaquín

Accepted Solutions (1)

Accepted Solutions (1)

former_member190501
Active Contributor
0 Kudos

Hi,


Goto tcode RSPC and select /CPMB/LIGHT_OPTIMIZE . From the displayed process chain select process Collapse and double click on it. System would open another window for this process  as Process display:Compression of infocube.

Press Ctrl+F1 to change it to change mode.

Check Switch on Zero Elimination and save.

This option will delete all zero records during compression.

Hope it helps...

Regards,

Raju

Answers (6)

Answers (6)

Former Member
0 Kudos

Hi,

I'm facing the same issue at 10 NW version 801 (note 1689814 cannot applied because it is for version 800). I would like to have these functionality at DEV and PRD system. We usually transport the application from RSA1 -> Transport Connection.

I created the DM package with the chain /CPMB/LIGHT_OPTIMIZE and the Dynamic script:

TASK(/CPMB/SWITCH_TO_LOAD,INFOCUBE,%APPBINAME%)

TASK(/CPMB/SWITCH_TO_PLAN,INFOCUBE,%APPBINAME%)

TASK(/CPMB/DELETE_INDEX,DTA_CUBE,%APPBINAME%)

TASK(/CPMB/CREATE_INDEX,DTA_CUBE,%APPBINAME%)

TASK(/CPMB/CREATE_STATISTICS,DTA_CUBE,%APPBINAME%)

TASK(/CPMB/LIGHT_COMPRESS,DTA_CUBE,%APPBINAME%)

TASK(/CPMB/ROLL_UP,DTA_CUBE,%APPBINAME%)

TASK(/CPMB/LIGHT_COMPRESS,ZERO_ELIMINATION_ON,X)

but it failed at "TASK(/CPMB/DELETE_INDEX,DTA_CUBE,%APPBINAME%)"

When I changed the dynamic script as below, I had success on execution but the zeroes continues.

TASK(/CPMB/SWITCH_TO_LOAD,INFOCUBE,%APPBINAME%)

TASK(/CPMB/SWITCH_TO_PLAN,INFOCUBE,%APPBINAME%)

TASK(/CPMB/ROLL_UP,DTA_CUBE,%APPBINAME%)

TASK(/CPMB/CREATE_STATISTICS,DTA_CUBE,%APPBINAME%)

TASK(/CPMB/LIGHT_COMPRESS,DTA_CUBE,%APPBINAME%)

TASK(/CPMB/LIGHT_COMPRESS,ZERO_ELIMINATION_ON,X)



When I tried to Right click on the cube of your model >>> Manage >>> On the Collapse tab, tick the "With Zero Elimination" option to, then, Re-run the optimization, when setting this check in the cube of my model, BW asked me for a transport request (and I cancel this process).


I have some questions:

a) Is there anything wrong at first DM Package above? Is there anything else to do?

b) Suppose that it works. Will we have any issues between DEV and PRD when use transport (for example different technical names)?



Regards,

Ana Teresa

former_member186338
Active Contributor
0 Kudos

1. TASK(/CPMB/LIGHT_COMPRESS,ZERO_ELIMINATION_ON,X) - only for BPC NW 7.5!

2. for a transport request (and I cancel this process). - don't cancel! it's correct!


Vadim

Former Member
0 Kudos

Hi, Vadim,

Thank to answer.

I repeated the process at RSA1 -> InfoProvider as below and run Lite Optimize again.

Unfortunately, it ran with success, but without delete zeros.

Below, the log. What is wrong?

former_member186338
Active Contributor
0 Kudos

Hi Ana,

Please, look here:

Vadim

P.S. and here:

0 Kudos

Ana, 

It appears to me that the issues lies in your 'Collapse' process type of LO process chain.

Please make sure the the option 'Number of requests that you do not want to collapse' is selected and is marked as Zero.

Cheers,


Former Member
0 Kudos

Hi Venkata,

In most scenarios you might want to keep that number set to 2 to prevent performance issues due to statistics calculation (Note 1565292).

As for the rest of the topic, I believe this has already been clarified but zero elimination will only prevent zero values from being saved when compression is executed.

Already existing zero values must be manually cleared, RSCDS_NULLELIM usually helps, I'm not sure why it didn't work for you before.

Regards,

Marcelo

former_member186338
Active Contributor
0 Kudos

Hi Marcelo,

I do not understand your point...

"As for the rest of the topic, I believe this has already been clarified but zero elimination will only prevent zero values from being saved when compression is executed.

Already existing zero values must be manually cleared, RSCDS_NULLELIM usually helps, I'm not sure why it didn't work for you before."

What do you mean by "Already existing zero values must be manually cleared"???

With the chain set like:

All existing zero values will be removed... Tested!

Vadim

Former Member
0 Kudos

Hi Vadim,

I meant that existing zero values in E-table wouldn't be affected.

My understanding is that light optimize will just not write the zero values from F to E-table.

If you tested this scenario then thanks for correcting me.

Regards,

Marcelo

former_member186338
Active Contributor
0 Kudos

I will retest tomorrow but I am 95% sure...

Test scenario:

1. Enter some value, send, clear value, send

2. 2 records in RSA1 (+value -value)

3. Light optimize with default settings - without switch on zero elimination

4. Single record in RSA1 with zero

5. Light optimize with switch on zero elimination and 0 number of requests...

6. No record

Vadim

Former Member
0 Kudos

Thanks, Vadim.

In that scenario you will only have uncompressed zero values, so light optimize will just not save them to the E-table due to zero elimination.

Let's say you compress the request without zero elimination, then you would have zero values in the E-table.

The next time you run light optimize with zero elimination enabled (after further data entry) it won't remove those values but it will prevent further zeroes from being moved to E-table.

Regards,

Marcelo

former_member186338
Active Contributor
0 Kudos

Sorry, but I mentioned this in:

3. Light optimize with default settings - without switch on zero elimination

4. Single record in RSA1 with zero

Zero in E-table...


Vadim

Former Member
0 Kudos

Oops, that's what I get for speed reading.

You're correct, disregard my previous reply.

Marcelo

former_member200327
Active Contributor
0 Kudos

Hi Vadim,

I agree with Marcelo here: if record with 0 gets into E table it stays there until another record with same key comes from F table.

So, best way to get rid of it in E table is ..._NULLELIM (we are not talking about HANA, right).

Regards,

Gersh

former_member186338
Active Contributor
0 Kudos

Yes, I can confirm, that after zero is stored in E table, zero elimination will not remove it!

Vadim

P.S. And Yes, RSCDS_NULLELIM works fine with successful elimination of zero's

Same behavior in BPC NW 7.5 and 10

former_member224107
Participant
0 Kudos

In my case the only resolution was to manually execute the compress in BW.

I think a workaround could be the following :

1. Implement Note 1689814  -- prevent change of technical name of BPC cubes.

2. Create a custom process chain with a compress cube, including the BPC processes to enable it for executing it as a DM package

Former Member
0 Kudos

Hi Lucas,

in our case this setting on the InfoCube allows to remove zeros from the Model.

Thanks a lot for your suggestion.

Best regards

Michele

Former Member
0 Kudos

Hi experts,

we're facing the same issue with version 10 NW.

Is there any solution?

Thanks and regards

Michele

Former Member
0 Kudos

Hi,

According with this thread http://scn.sap.com/thread/1858561 (I can't precise if it works) there is a note, not released, that in summary says:

- Right click on the cube of your model >>> Manage >>> On the Collapse tab, tick the "With Zero Elimination" option.

Then Re-run the optimization.

Regards,

Lucas

Former Member
0 Kudos

Hi Lucas:

when setting this ckeck in the cube of my model, BW asks me for a transport request, but this BW object is not supposed to be transported using the BW system transport, It is supposed to be transported using BPC system transport.

So how did you manage to check this without using a transport request?

regards

mah

former_member186338
Active Contributor
0 Kudos

Hi,

Simply create the DM package with the chain /CPMB/LIGHT_OPTIMIZE and the Dynamic script:

TASK(/CPMB/SWITCH_TO_LOAD,INFOCUBE,%APPBINAME%)

TASK(/CPMB/SWITCH_TO_PLAN,INFOCUBE,%APPBINAME%)

TASK(/CPMB/DELETE_INDEX,DTA_CUBE,%APPBINAME%)

TASK(/CPMB/CREATE_INDEX,DTA_CUBE,%APPBINAME%)

TASK(/CPMB/CREATE_STATISTICS,DTA_CUBE,%APPBINAME%)

TASK(/CPMB/LIGHT_COMPRESS,DTA_CUBE,%APPBINAME%)

TASK(/CPMB/ROLL_UP,DTA_CUBE,%APPBINAME%)

TASK(/CPMB/LIGHT_COMPRESS,ZERO_ELIMINATION_ON,X)

The last line will enforce zero elimination.

B.R. Vadim

0 Kudos

Hi Vadim,

I tried putting the last line in your above 'Dynamic script' into my 'Lite Optimize' script logic.

TASK(/CPMB/LIGHT_COMPRESS,ZERO_ELIMINATION_ON,X)

It still is not deleting the zeros.

Once the 'Lite Optimize' is run the data (including zeros) will move from F-table to E-table.

I think 'Lite Optimize' only deletes zeros from the F-table and not from E-table.

Is there any way to do zero suppression from E-table ?

I found below note of BW Program, but it didn't help.

1470209 - BW report RSCDS_NULLELIM on InfoCube without time dimension

former_member186338
Active Contributor
0 Kudos

In BPC 7.5 the line TASK(/CPMB/LIGHT_COMPRESS,ZERO_ELIMINATION_ON,X) works fine. Can't test it on BPC 10.

B.R. Vadim

Former Member
0 Kudos

Hello Joaquín,

Please refer to:

Note 1668152 - PCMS: "Remove Empty and Zero Values" Options do not Work

Also:

-Symptom

It is not possible to remove zero records by running a clear package or lite optimize.

-Cause

Zero elimination function only works when there are uncompressed data, which means only zero data in F table will be eliminated.

-Resolution

If there are zero records in E table where compressed data exists, use the BW report RSCDS_NULLELIM (review Note 1587759).

Review also Note 1470209 that fixes an issue with BW report RSCDS_NULLELIM.

Hope it helps.

Regards,

Vin