7 Replies Latest reply: Dec 21, 2010 2:58 PM by D. Gorsic RSS

Delta between two DSO's

D. Gorsic
Currently Being Moderated

Hello,

 

Can somebody explain to me how the delta mechanism between two DSO works?

 

1)  If data is loaded from changelog of DSO 1 to DSO 2, are only the records with recordmode " " sent to the activation queue of DSO 2, or also the before images "X"?

2) The difference between ADD and OVERWRITE update type for KF, not the result of it (because that's obvious), but what actually happens in DSO tables? Does this setting determine which recordmode records are sent from changle log to activation queue of target DSO?

3)  What happens if DSO 1 has more KF than DSO 2, so the data is being aggregated, are there some settings needed to be made in order to make delta work correctly?

3.a) At what point is data being aggregated, before or after activation of DSO?

 

I have read a lot of documents and spent much time on SDN and did not find an answer.

I hope you kan help me. I have the problem where the second load between two DSO causes some fields (characteristics) in target DSO to be empty/blank (like 0CALMONTH), even they were loaded fine with the "initial" load.

But I'm also keen to totally understand the delta mechanism between DSO's.

 

An example would be really good to see how those things work!

 

Kind regards,

Danijela

 

Edited by: Danijela Gorsic on Dec 15, 2010 4:14 PM

  • Re: Delta between two DSO's
    Francisco Milán Campos
    Currently Being Moderated

    Hi Danijela:

     

    Please note that a similar question has been posted recently here on SCN.

    "Delta mechanism between two DSO (not between Datasource and DSO)"

    /message/9812325#9812325

     

    If the SAP Notes and articles mentioned in this thread plus all the documents that you've read before don't clarify all your doubts I think you'll need to give us more details on your particular scenario (e.g. the settings on the DTP, the Technical Name of the DataSource, a sample of Source Data, a sample of Target Data, Keys and Data Fields on the DSOs, etc.) to provide you more appropriate suggestions.

     

    Regards,

     

    Francisco Milán.

     

    • Re: Delta between two DSO's
      D. Gorsic
      Currently Being Moderated

      Hi Francisco,

       

      Thank you for your answer, but I've read this thread before I posted my question. The most discussions there consider an explanation of record mode sent by a datasource.

      But in my case, I'm loading data to DSO 2 in transformation layer from DSO 1 also in transformation layer but part of another dataflow (and which is being loaded from another DSO in acquisition layer and not a datasource).

       

      I made no special settings, no routines, so it's standard BW. Update type for KF is Addition, and data is loaded form Changelog of DSO 1 (standard setting) So my questions are general, and do not concern manipulations in routines.

      The only issue is that DSO 2 has less key fields so data coming from DSO 1 is being aggregated in DSO 2.

       

      For examle blog /people/swapna.gollakota/blog/2007/12/27/how-does-a-datasource-communicates-delta-with-bw is great and provides a clear explanation on how different delta's of a datasource work,  and I'm curious if there is some documentation like this that explains delta between DSO's in detail.

       

      Thank you.

       

      Regards,

      Danijela

      • Re: Delta between two DSO's
        Francisco Milán Campos
        Currently Being Moderated

        Hi Danijela:

         

           The SAP Note 1133282 - "Initialized fields in the data part of a DataStore object" describes exactly the same behaviour you observe in your dataflow, it even includes a diagram with an example.

         

        Is the scenario described in that Note different from yours? If yes, Could you please mention the differences and provide a sample of your source data and target data? (it could be fake data, it is just for the sake of a better understanding).

         

        Regards,

         

        Francisco Milán.

         

  • Re: Delta between two DSO's
    Richard Wong
    Currently Being Moderated

    Hi Danijela,

     

    1)The change log shows everything which has happened to the active table.  So when the delta is loaded the before image records are sent to the active table first, followed by the after-image (assuming update mode ABR).

    What you are seeing in the active table is the last image to be written for a record.

     

    2)Again here check the difference between the changelog and the Active table.  Don't be fooled into thinking that because the rule type is set to sumation (additive) that this changes the Delta type (to a single additive record)  For example..

     

    Cubes are an addative load..but what actually happens when a delta is loaded from is we get the before image which negates the original value, then an after record.  The same happens with our DSO, you will see the after image in the DSO changelog with the final aggregated value for the key figure - this is what is writtten to the active table last)..

     

    Therefore from change log you can see the delta is aggreated prior t oactivation.

     

    Thanks,

    richard

    • Re: Delta between two DSO's
      D. Gorsic
      Currently Being Moderated

      Hi Richard,

       

      Thank you for your reply!

       

       

      1) "So when the delta is loaded the before image records are sent to the active table first, followed by the after-image (assuming update mode ABR)"  Correct me if I'm wrong but I think the data is loaded first to the activation queue, and upon the activation the records form activation queue are sent to change log and active table.

      What was difficult for my to understand is the following. I changed a record in the source, so when loading data from DSO 1 to DSO 2, two records are sent from the changelog of DSO 1 to the activation queue of DSO 2, like it suppose to work: one before and one after immage. And, that when I look at the activation queue of the target DSO, prior to the activation, I see those two records, completely identical to those in the changelog of source DSO, but recordmode is empty!!! So, can I assume that this is standard SAP?

       

       

      2) Clear, thank you!

       

      Regards Danijela

      • Re: Delta between two DSO's
        Sreekanth Surampally
        Currently Being Moderated

        1) If data is loaded from changelog of DSO 1 to DSO 2, are only the records with recordmode " " sent to the activation queue of DSO 2, or also the before images "X"?

         

        firstly, when you load delta dtp, data transfers from Change log table. if it is full it would be from source DSO active table.

        All the requests in source DSO will have corresponding activation requests which are generated when data is activated. After activation data is stored in change log table with before and after images if any changes. these before and after records will be part of that particular activation request id.

         

        so when you run delta from DSO1 to DSO2,  the requests which are not updated from source to target will be updated to DSO2. During update the data in activation requests will be going to DSO2 irrespective of the record modes(images).

         

        As you confirmed, when you see activation queue first you will see the before image and next after image record in DSO2.

         

        2) The difference between ADD and OVERWRITE update type for KF, not the result of it (because that's obvious), but what actually happens in DSO tables? Does this setting determine which recordmode records are sent from changle log to activation queue of target DSO?

         

        Ex:      datasource         doc - 10001         Netvalue  - 2000

         

        if you load this to DSO1,  DSO1 data          doc - 10001  Net val  -2000

         

        let us say netval is changed to 1500,  if the keyfigure update is Overwrite,

         

        then Active table        Doc - 10001     netval -  1500               

         

        Change log - Doc 10001  net val -  -2000      - before image

                             Doc 10001  net val     1500       - After image

         

        if the key figure update is Summation,                   

           Active table  doc - 10001  net val - 3500      

         

        Change log -    doc 10001  net val  -   -2000   - before image

                                  doc 10001  net val  -   3500     after image

         

        by above example you must understand.

         

        3) What happens if DSO 1 has more KF than DSO 2, so the data is being aggregated, are there some settings needed to be made in order to make delta work correctly?

         

        yes data is aggregated according the target key fields.

         

        3.a) At what point is data being aggregated, before or after activation of DSO?

         

        before activation, while loading to DSO2 it selt it will be aggregated.

        • Re: Delta between two DSO's
          D. Gorsic
          Currently Being Moderated

          Sreekanth, thank you for the explanation!!

           

          To be sure:

           

          1) "so when you run delta from DSO1 to DSO2, the requests which are not updated from source to target will be updated to DSO2. During update the data in activation requests will be going to DSO2 irrespective of the record modes(images)."

          I do not understand this for 100%, please correct me. When loading delta from DSO 1 to DSO 2, data is being loaded from changelog DSO 1 to activation queue DSO 2. And I did confirm that in activation queue I see before and after images, but the field recordemode is empty, which indicates before and after images!? So I can only guess that records sent from changelog DSO1 to activation queue DSO 2 are before and after images

           

          2) One question;

          Record in the active table  doc - 10001 Net val -2000 will be overwritten by a new record, dependent on update mode for KF

          Doc - 10001 netval - 1500 (Overwrite)

          OR

          Doc - 10001 net val - 3500  (Summation)

           

          Thank you for this example.

           

          Kind regards Danijela

Actions