Skip to Content
0
Former Member
Jun 05, 2009 at 05:52 PM

Find opening stock

43 Views

Hi Rob Burbank,

My coding is taking so much time for the execution.

How to simplify run time.

Please tell me how to optimize time.

TABLES : WB2_V_MKPF_MSEG2,MACKW.
  
  RANGES : O_DATE FOR SY-DATUM.
  DATA : BEGIN OF ITAB OCCURS 0.
        INCLUDE STRUCTURE WB2_V_MKPF_MSEG2.
  DATA : MTART TYPE MACKW-MTART.
  DATA : END OF ITAB.
 
  DATA : BEGIN OF IT_COL OCCURS 0,
           MATNR_I TYPE WB2_V_MKPF_MSEG2-MATNR_I,
           LGORT_I TYPE WB2_V_MKPF_MSEG2-LGORT_I,
           MENGE_I TYPE WB2_V_MKPF_MSEG2-MENGE_I,
           MEINS_I TYPE WB2_V_MKPF_MSEG2-MEINS_I,
           LGOBE TYPE T001L-LGOBE,
       END OF IT_COL.
 
  SELECT-OPTIONS:  S_BUKRS FOR WB2_V_MKPF_MSEG2-BUKRS_I,
                 S_WERKS FOR WB2_V_MKPF_MSEG2-WERKS_I,
                 S_MATNR FOR WB2_V_MKPF_MSEG2-MATNR_I,
                 S_MTART FOR MACKW-MTART,
                 S_BUDAT FOR WB2_V_MKPF_MSEG2-BUDAT
                 NO-EXTENSION NO INTERVALS.
 
O_DATE-SIGN = 'I'.
O_DATE-OPTION = 'BT'.
O_DATE-LOW = '19780218'.
O_DATE-HIGH = S_BUDAT-LOW - 1.
APPEND O_DATE.
 
START-OF-SELECTION.
 
SELECT * FROM WB2_V_MKPF_MSEG2 AS A INNER JOIN MACKW
   AS B ON B~MATNR = A~MATNR_I AND B~WERKS = A~WERKS_I
   INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE
   A~MATNR_I IN S_MATNR AND A~WERKS_I IN S_WERKS AND
   A~BUKRS_I IN S_BUKRS AND
   A~BUDAT IN O_DATE AND
   B~MTART IN S_MTART.
 
  SORT ITAB BY  BUDAT WERKS_I MTART  MATNR_I .
 
  LOOP AT ITAB.
    IF ITAB-SHKZG_I = 'H'.
      ITAB-MENGE_I = ITAB-MENGE_I * -1.
    ENDIF.
    MODIFY ITAB.
  ENDLOOP.
 
LOOP AT ITAB.
    MOVE : ITAB-MATNR_I TO IT_COL-MATNR_I,
           ITAB-LGORT_I TO IT_COL-LGORT_I,
           ITAB-MENGE_I TO IT_COL-MENGE_I.
    COLLECT IT_COL.
  ENDLOOP.
 
LOOP AT IT_COL.
WRITE : / IT_COL-LGORT_I,IT_COL-MATNR_I,IT_COL-MENGE_I.
ENDLOOP.

Regards,

Ur friend.

Well, that's better at least, but I'll move it to the correct forum.

Edited by: Rob Burbank on Jun 5, 2009 1:55 PM