cancel
Showing results for 
Search instead for 
Did you mean: 

Overwriting a field already present in the DSO

Former Member
0 Kudos

Hi experts!

We want to create a DSO with a few characteristics (no key figures).

Before each new reload with new data (we are going to use Delta), we want to overwrite the value of the of the fields.

Can we set up in the start routine that if one field is "a value", then overwrite all the records with that value to "another value", disappearing the previous one?

After setting that value of that field as "another value", we will do the normal delta load...

If not possible,can we use a external ABAP program?

DSO after the first load

                     Field 1    Field 2    Field 3       Field 4     Field that we need to overwrite

Record 1           XX            YY          ZZ             UU          WW

Dong the second load:

Before new data reach the DSO

                  Field 1    Field 2    Field 3       Field 4     Field that we need to overwrite

Record 1           XX            YY          ZZ             UU           "TT"         --> (we want to change this value from WW to TT) before all tarsformations of new data)

Record 2           XY             YY         zz              UU           WW        --> We dont want to do anything with the value of this field within its first laod.

Thanks for your time!!

Accepted Solutions (1)

Accepted Solutions (1)

anshu_lilhori
Active Contributor
0 Kudos

Hi,

Make the first four fields as keyfields in DSO and the one which you need to overwrite as datafield.

BY doing so it will behave as you need.Please understand that based on unique combination of keyfields new record will be added or else it will be overwritten.

So in your case if all the keyfields remain same then the data will get overwritten everytime.

Hope that helps.

Regards,

AL

Former Member
0 Kudos

Hi Anshu,

The problem is that this DSO is going to be filled just with reversal records from other DSO...all the records which reach this DSO will be never changed...as it is unlikely to get a reversal from a reversal...

So, we need to change that field (data field) by a program (star routine?) before each load, because we just want to select the "R" records of the day as we are going to use only these records of the day for another program...

The thing of changing then to another value is because we just need the latest "R" (reversal records), for doing futher data process in other DSO, but we would like to keep an historcal with all the records which have been revererted...but not use these historical for the other program.

Cheers!

Former Member
0 Kudos

Hi Die,

If you know Field which need to get overwritten, you can bring those records only in BW and while in start routine, you can delete records which are R records and then complete the load for those only (as i want to avoid confusion).

While bringing records just bring with record with R value.

Regards,

Ganesh

Former Member
0 Kudos

Hi Ganesh,

This DSO is going to be filled with reversal records only...so, i dont think that we will ever have a reversal of a reversal.

It is just to change overwrite the "Change mode" field of the records present in the DSO before the new data reach it.

As we just need data with record mode = R, no further modification of those records for the set up as key fields will ever get the DSO..

Thanks!

Answers (1)

Answers (1)

RamanKorrapati
Active Contributor
0 Kudos

Hi Die,

DSO nature is Over write functionality. Cube is Additive.

If the all characters are same and key fig will be different, while in second load it will loads with + and  -values of tht key fig.

regards

Former Member
0 Kudos

Hi KR,

All of those fields are going to be Data fields (no key figures are going to be present in that DSO).

All the records present there are going to be the reversal done in the previous DSO...so, the record will be just updated one...just with the reversal.

If the record is new or modificated, it will not present.

We would like to know if we can set up the value of that field with ABAP code before the daily load begins.

For example, select all "Field that we need to overwrite = R" and where is a R, overwrite for a "X".

In the next load, we expect new data (all the records loaded at that moment will be "Field that we need to overwrite = R)...in the next load, we want to make those records with other value.

Cheers!

RamanKorrapati
Active Contributor
0 Kudos

Hi Die,

Seems like ur in confusion? if yes.. pl.. go thru

In DSO Key field means its not key figure, its like primary characters which your using in ur business needs. so in key fields you need drag only 16 characteristics only.

Data field: under this we can drag key figure as well as characteristics.

For your requirement just follow the Anshu Suggestion, Just add your key figure which changes and keep chars in Key fields which are same.

Regards

Former Member
0 Kudos

Hi KR,

Once one record get this DSO, we dont expect that a reversal reached it ever (as it is going to be filled only with records with Record mode = R)

So, we dont expect that the following Deltas change its value...the idea is to select in the start routine all the records with Record Mode = R, and overwrite to "X"...or any other value.

This process is done, let the new records of day be loaded...and if record mode = R, keep the "R" value...just till next delta load...that we would set up the record as "X"...

Of course, the Record mode will be data field.

thanks again!