cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Start Routine Issue

former_member184884
Active Participant
0 Likes
2,262

Hi Mates,

We have are facing one strange issue in our production system we just fed up, i need all your valuable support in resolving this issue, Hope i will succeeded in this.

Scenario:

There is delta DTP which is part of daily process chain which will load the data from DSO(standard) to Cube as usual in the transformation level their is some business logic is written both in the start & end routine but this DTP will approximately 1.5 million records for this it will take

approx 10-14 hrs runtime,so after analysis we have found code which is written in the start routine is not optimized so we have done some minor changes in the code to improve the load performance.

But issue started from here onward we have done changes on development and transported to quality we have ran same DTP which is their in the production it's performance has improved drastically for 1.7 million records it took only 15 mins runtime so we felt very happy and on the same day we have transported code to production but big magic has happened here only.

when that particular DTP has ran in the production through schedule process chain it running for long time like for one data package(50000) to complete it is taking 3-4 hours so to pull all 1.5 million records it is running for 2 days due to this long run it has impacted entire production system means other loads.

So my doubt here is why it is take acting strange in the production, Please give your valuable reviews on my issue.

Below is the piece of code which is there is in the start routine

DATA : s_material  TYPE /bi0/pmaterial ,

          t_material  LIKE STANDARD TABLE OF s_material,

          wa_material LIKE LINE OF t_material,

         s_matunit   TYPE /bi0/pmat_unit,

          t_matunit   LIKE STANDARD TABLE OF s_matunit,

          wa_matunit  LIKE LINE OF t_matunit.

DATA : s_primrate TYPE /bic/azsd_o01900,

       t_primrate LIKE STANDARD TABLE OF s_primrate,

       wa_primrate LIKE LINE OF t_primrate,

       min_calday LIKE sy-datum.

DATA : BEGIN OF r_compcode OCCURS 100,

        sign   TYPE c LENGTH 1,

        option TYPE c LENGTH 2,

        low    TYPE c LENGTH 4,

        high   TYPE c LENGTH 4,

       END OF r_compcode.

data : s_/BI0/PCOMP_CODE  type /BI0/PCOMP_CODE ,

        t_/BI0/PCOMP_CODE  like STANDARD TABLE OF s_/BI0/PCOMP_CODE,

       wa_/BI0/PCOMP_CODE LIKE LINE OF t_/BI0/PCOMP_CODE.

data  wa_r_compcode like LINE OF r_compcode.

CLASS lcl_transform IMPLEMENTATION.

  METHOD start_routine.

    FIELD-SYMBOLS:

      <SOURCE_FIELDS>    TYPE _ty_s_SC_1.

    DATA: MONITOR_REC     TYPE rstmonitor.

min_calday = sy-datum - 30.

    if SOURCE_PACKAGE is NOT INITIAL.

      SELECT *

        INTO TABLE t_material

        FROM /bi0/pmaterial

        FOR ALL ENTRIES IN SOURCE_PACKAGE

       WHERE material eq SOURCE_PACKAGE-material

        and  objvers EQ 'A'.

      SELECT *

         INTO TABLE t_matunit

          FROM /bi0/pmat_unit

          FOR ALL ENTRIES IN SOURCE_PACKAGE

          WHERE material eq SOURCE_PACKAGE-material

          and objvers EQ 'A'.

   endif.

    select *

      into table T_/BI0/PCOMP_CODE

      from /BI0/PCOMP_CODE

     where COUNTRY eq 'PK'

       and OBJVERS eq 'A'.

    loop at t_/BI0/PCOMP_CODE into wa_/BI0/PCOMP_CODE.

      wa_r_compcode-sign   = 'I'.

      wa_r_compcode-option = 'EQ'.

      wa_r_compcode-low    = wa_/BI0/PCOMP_CODE-COMP_CODE.

      wa_r_compcode-high   = ''.

      append wa_r_compcode to r_compcode.

    endloop.

    IF SOURCE_PACKAGE[] IS NOT INITIAL.

  REFRESH: t_primrate.

  DELETE SOURCE_PACKAGE[] WHERE comp_code NOT IN r_compcode.

  SELECT *

        INTO TABLE t_primrate

        FROM /bic/azsd_o01900

        FOR ALL ENTRIES IN SOURCE_PACKAGE

        WHERE salesorg EQ SOURCE_PACKAGE-salesorg

        and comp_code EQ SOURCE_PACKAGE-comp_code

        and division EQ SOURCE_PACKAGE-division

        and distr_chan EQ SOURCE_PACKAGE-distr_chan

        and calday GT min_calday

        and customer  EQ SOURCE_PACKAGE-/bic/zsd_dist

        and material EQ SOURCE_PACKAGE-material.

   ENDIF.

    SORT t_material BY material objvers.

    SORT t_matunit  BY material mat_unit objvers.

    SORT t_primrate BY salesorg   comp_code division

                       distr_chan calday    customer material.

ENDMETHOD.                   

METHOD inverse_start_routine.

ENDMETHOD.      

ENDCLASS.                                

Please free to ask me if you have any doubts regarding my issue.

Regards,

Harish

View Entire Topic
Former Member
0 Likes

Hi Harish,

Please try to implement the suggestions given by our experts in your code. I would advice you to take the help of any ABAPer.

One important thing is please check the number of parallel processes for a your DSO to Cube DTP.

Because it seems same code took 15 minutes in Quality. but it's taking long time in Production.

So in your DSO to Cube DTP screen navigate to below path.


Goto -> Batch Manager Setting. Under Number of Processes, check how many background processes  used to process the DTP for Quality and Production.

I doubt there are more number of process allocated in your quality than Production that's why it's taking less time in quality.

Harshawardhan.

KamalMehta
Product and Topic Expert
Product and Topic Expert
0 Likes

Hi ,

You should also change DTP setting to have less data packet size and more number of parallel process.

Thanks