cancel
Showing results for 
Search instead for 
Did you mean: 

How to update key figure value?

Former Member
0 Kudos

Hello there.

I would like to post a problem I am having. Any help will be appreciated.

I have two cubes, one for Notification Causes and one for Notification Items that are part of a multicube. There is a Key Figure on the Notificaton Items cube (Defect Qty Extern) that I am trying to get. I need to restrict this, however, on a Defect Cause Group (0CATGRP_CSE).

I currently have the R/3 LO Cockpit set to load the 05 Cause structure into an ODS in BW which is then rolled up to a Cause Cube. I have the same thing set up for the Iten ODS to Item Cube. In the update rules for the cause cube, I created a new key figure that has an ABAP routine attached to update it. I use the Notification Number (0NOTIFICATN), Notification Item (ZSNOTITEM) and Defect Code (0CATGRP_FE) to look up the defect quantity on the Notification Item ODS and then apply that is the defect quantity on the Cause Cube.

This works well until someone goes and changes a defect code group (0CADGRP_FE) to something else. What used to be a WARRANTY defect code group can get voided and become a ZVOID. Now, when the ODS to cube data mart occurs, I have a defect quantity for WARRANTY as well as ZVOID duplicating the total defect quantity.

So, my question is this. What can I do to REPLACE a key figure instead of sum it every time? I looked at the LAST VALUE aggregation exception option, but there is no date change that occurs each time it it changed. I could use the sysdate and store that at the time of the update rules.

Does this seem like the best course of action? Any info would be appreciated. ABAP solutions welcomed as well.

Thanks.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Brent,

If it acceptable to delete the content of all ODS and cubes and reload all data? If yes, in transfer rules (during a load from PSA) I would write a routine that would check incoming defect code group and if it is the old one, then replace it with the new one.

Best regards,

Eugene

Answers (5)

Answers (5)

Former Member
0 Kudos

In the Delta from the first ODS, you could probably use the reverse image and the new image to identify the 0CATGRP_FE which have changed based on the other key fields and here you could zero out the earlier value and put the value in the ZVOID row.

Thanks

Shailesh

Former Member
0 Kudos

Hi,

I am not sure that i have understood your problem completely, however my $0.02.

Could you keep an overwrite ODS in which your key would be Notification Number (0NOTIFICATN), Notification Item (ZSNOTITEM) and Defect Code (0CATGRP_FE) and use this to send a delta to Cause cube. This would make sense only if this ODS can be populated by delta.

Let me know if this helps.

Thanks

Shailesh

Former Member
0 Kudos

Eugene,

Yes, this value was changed in the source system so I need to get this value changed in the cube as well.

Thanks,

Brent

Former Member
0 Kudos

Thanks for the reply Eugene, but reloading the cube is only a temporary solution. When the next round of deltas come in, the problem resurfaces.

Former Member
0 Kudos

Hi Brent,

Maybe I didn't understand your requirements. I thought that the root of the issue was in the 0CATGRP_FE change. Or you mean that this IO's value have been changed IN THE SOURCE SYSTEM?

Best regards,

Eugene

Former Member
0 Kudos

Hi Brent,

If there are not so many data, think, it's better to clean both your cubes and 0CATGRP_FE, reload master data of defect group and then reload cubes again.

Best regards,

Eugene