Wednesday 2 May 2012

How Does DSO Maintains Delta Records in Change Log Table

Hi All,

This post explains how DSO manages change log table to give proper delta records to the Info Provider(DSO/Info Cube) and the importance of orecordmode.

DSO has three tables:  i) Activation Queue/ New Table 
                                   ii) Active table and 
                                  iii) Change Log table

DSO uses Change Log table to Manage Delta Records.

In DSO you can set whether Key Figures should get Overwrite/Summation based on Key Fields.

Now let’s take an example where today we got one sales order with quantity 50

111          50

When it gets loaded to the DSO and activated, we will get the below records in Active Table and Change Log table (there will be no data in Activation Queue/New Table upon activation)

Active Table:

111          50

Change Log Table

111          50   N (0recordmode - New Image)

When this record loaded to the cube, it will be as below (Info Cube is always Additive)

111          50

As this record is loaded to the CUBE, Delta Time stamp for this source and target will get update in ROOSPRMSC table with all the details.

Now tomorrow we got same sales order with quantity 70. So this record has to get change in DSO and CUBE. As DSO is overwrite, new value will get overwrite in place of old value so we will get correct value.

What about CUBE? Cube is always additive so if I load this new record to CUBE then the quantity will become 120 which is wrong.

This is the place where 0recordmode comes into picture. It maintains the images for changed and new records so that records will correctly uploaded to the cube.

Now as the quantity is changed to 70, we will get below records in active and change log table of DSO upon activation.

Active Table

111            70 (overwrite)

Change Log Table

111            -50        (X -- Before Image)
111             70        ( '  ' -- After Image) symbol for after image is 'Space'

So if we load this record to the target as a delta the above two records from change log table will get loaded to the CUBE.

Now what happens?

111            50 (already Existing)
111           -50
111            70
------------------
111            70 (Which is expected)

Hope this gives you clear idea...

1 comment: