cancel
Showing results for 
Search instead for 
Did you mean: 

Write Optimized DSO with Routine...

Former Member
0 Kudos

Hi Experts,

Good Day!

I am planning to use write optimized DSO in enhance/minimize data loading time. The data store in the said DSO is only for data checking before I will upload to Cube (Reporting Layer). The data in the said DSO will deleted after the availlabity of data in Repoprting Layer (Cube). But before the data loading in the said DSO, I have to considered some routines.

My Question is: Is it possible to use Write Optimized DSO with Field Routines, Start and End Routine. It will be a helpful stategy or will make worst for the my expected result?

Many thanks.

Regards,

-Whel

Accepted Solutions (1)

Accepted Solutions (1)

Loed
Active Contributor
0 Kudos

Hi,

Yes you can use routines in WDSO..

Can you post a sample scenario like sample routines you wanted to implement? Usually WDSO is used to store all the data in your PSA without doing any modification..Just a plain copy of your PSA so you can delete your PSA requests afterwards..

Regards,

Loed

Former Member
0 Kudos

Hello Sir Loed,

Please see routine below:

DATA  V_YEAR    TYPE /BI0/OICALYEAR.
    DATA  V_MONTH   TYPE /BI0/OICALMONTH.
    DATA  V_MONTH2    TYPE /BI0/OICALMONTH.
    DATA  V_DATE    TYPE /BI0/OICALDAY.

    RESULT = 0.

    IF SYST-datum = '20121004' or SYST-datum = '20121005'.
          V_YEAR = '2012'.
          V_MONTH = '09'.
          CONCATENATE V_YEAR V_MONTH+4(2) INTO V_MONTH2.
    ELSE.
        IF SYST-datum+6(2) < '07'.

            IF SYST-datum+4(2) = '01'.
                V_YEAR = SYST-datum(4).
                V_YEAR = V_YEAR - 1.
                V_MONTH = '12'.

                CONCATENATE V_YEAR V_MONTH+4(2) INTO V_MONTH2.
            ELSE.
                V_YEAR = SYST-datum(4).
                V_MONTH = SYST-datum+4(2).
                V_MONTH = V_MONTH+4(2) - 1.

                CONCATENATE V_YEAR V_MONTH+4(2) INTO V_MONTH2.
            ENDIF.
        ELSE.
           V_MONTH2 = SYST-datum(6).
        ENDIF.

    ENDIF.

Former Member
0 Kudos

Hi, is this Code is for field level routine?

Former Member
0 Kudos

Hi Roel,

Your code looks like from field routine.

at the end of your code you have to assign the value back to the result.

move V_MONTH2 to result.


Thanks,

-J

former_member183519
Contributor
0 Kudos

Hello Roel,

instead of doing code @field level, put your code in end routine ... LOOP AT RESULT_PACKAGE ASSIGNING <RESULT_FIELDS> ... ENDLOOP.

it will improve performance.

Regards,

Hitesh

Former Member
0 Kudos

Hello Ravindra.

Yes, the code is field rouitne.

Answers (4)

Answers (4)

former_member183519
Contributor
0 Kudos

Hello Roel,

i guess, you want to delete records from said dso based on LOOKUP.

btw..yes u can use routine in WDSO.

my suggestion would be if u want to delete some records based on any condition in routine then go for WDSO in start routine , and if you want to do any complex calculation then go for dso routine.

because suppose u have 10 million records in WDSO and then while going to above layer it becomes 8 million, then it is better to execute code for 8 million instead of 10 million.

<<but again based on scenario we decide where to write code>>

Regards,

Hitesh

Former Member
0 Kudos

The Write optimized DSO as other mentioned is used for staging Huge data, as it has only one table (Active Table) . In case if you want to add Start Routine, End Routine it will work as expected.

former_member227168
Participant
0 Kudos

Hi Roel,

Generally WDSO will used in Projects for stageing perpose,

if you selected SID generation in DSO Settings, its like as Standard DSO.

Thanks,

Ram.

Former Member
0 Kudos

Hi Whel,

You write routines ( Start, End and filed routine ) while using write optimised DSO.

Thanks,

Shakthi Raj Natarajan