Skip to Content
0
Former Member
Nov 27, 2006 at 05:27 PM

performance issue

29 Views

Hi all ,

This is my code is there any other ways to improve performance.

REPORT ZPRODUCT .

Tables : MARA,CDHDR.

type-pools: slis.

data: fieldcatalog type slis_t_fieldcat_alv with header line,

gd_tab_group type slis_t_sp_group_alv,

gd_layout type slis_layout_alv,

gd_repid like sy-repid.

DATA: BEGIN OF IT_MARA OCCURS 0 ,

MATNR(90) type c,

MTART LIKE MARA-MTART,

ERSDA LIKE MARA-ERSDA,

ERNAM LIKE MARA-ERNAM,

AENAM(10) type c,

SPART(254) TYPE C,

END OF IT_MARA.

DATA: BEGIN OF IT_TAB OCCURS 0 ,

MATNR(90) type c,

MTART LIKE MARA-MTART,

ERSDA LIKE MARA-ERSDA,

ERNAM LIKE MARA-ERNAM,

VALUE_NEW LIKE CDPOS-VALUE_NEW,

VALUE_OLD LIKE CDPOS-VALUE_OLD,

END OF IT_TAB.

select-options : P_date for mara-ersda.

DATA : BEGIN OF IT_CDPOS OCCURS 0,

OBJECTID LIKE CDPOS-OBJECTID,

VALUE_OLD LIKE CDPOS-VALUE_OLD,

VALUE_NEW LIKE CDPOS-VALUE_NEW,

END OF IT_CDPOS.

DATA : it_MARA_hash LIKE HASHED TABLE OF it_MARA

WITH UNIQUE KEY MATNR WITH HEADER LINE.

SELECT MATNR MTART ERSDA ERNAM AENAM SPART FROM MARA INTO TABLE IT_MARA

where laeda in P_date..

SORT it_mara BY matnr ASCENDING.

DELETE ADJACENT DUPLICATES FROM it_mara COMPARING matnr.

it_mara_hash[] = it_mara[].

SELECT OBJECTID VALUE_OLD VALUE_NEW FROM cdpos INTO TABLE it_cdpos FOR

ALL ENTRIES

IN

IT_MARA WHERE OBJECTID = it_mara-matnr and tabname = 'MARA'

and fname = 'SPART' AND VALUE_NEW = IT_MARA-SPART.

loop at it_cdpos .

*MOVE-CORRESPONDING IT_CDPOS TO IT_TAB.

MOVE IT_CDPOS-OBJECTID TO IT_TAB-MATNR.

MOVE IT_CDPOS-VALUE_NEW TO IT_TAB-VALUE_NEW.

MOVE IT_CDPOS-VALUE_OLD TO IT_TAB-VALUE_OLD.

SELECT SINGLE MTART ERSDA ERNAM FROM MARA INTO CORRESPONDING FIELDS OF

IT_TAB WHERE MATNR = IT_CDPOS-OBJECTID.

APPEND IT_TAB.

CLEAR IT_TAB.

ENDLOOP.

fieldcatalog-fieldname = 'MATNR'.

fieldcatalog-seltext_m = 'Material Number'.

fieldcatalog-col_pos = 0.

fieldcatalog-outputlen = 20.

fieldcatalog-emphasize = 'X'.

fieldcatalog-key = 'X'.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'MTART'.

fieldcatalog-seltext_m = 'Material Type'.

fieldcatalog-col_pos = 0.

fieldcatalog-outputlen = 10.

fieldcatalog-emphasize = 'X'.

fieldcatalog-key = 'X'.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'ERSDA'.

fieldcatalog-seltext_m = 'Create date'.

fieldcatalog-col_pos = 0.

fieldcatalog-outputlen = 10.

fieldcatalog-emphasize = 'X'.

fieldcatalog-key = 'X'.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'ERNAM'.

fieldcatalog-seltext_m = 'Created By'.

fieldcatalog-col_pos = 0.

fieldcatalog-outputlen = 10.

fieldcatalog-emphasize = 'X'.

fieldcatalog-key = 'X'.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'VALUE_NEW'.

fieldcatalog-seltext_m = 'Division (PMG)'.

fieldcatalog-col_pos = 0.

fieldcatalog-outputlen = 10.

fieldcatalog-emphasize = 'X'.

fieldcatalog-key = 'X'.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'VALUE_OLD'.

fieldcatalog-seltext_m = 'Division phWEB'.

fieldcatalog-col_pos = 0.

fieldcatalog-outputlen = 10.

fieldcatalog-emphasize = 'X'.

fieldcatalog-key = 'X'.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

gd_repid = sy-repid.

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

i_callback_program = gd_repid

  • is_layout = gd_layout

it_fieldcat = fieldcatalog[]

i_save = 'X'

tables

t_outtab = IT_TAB

exceptions

program_error = 1

others = 2.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.