Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

performance issue

Former Member
0 Likes
495

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.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
466

Hi Priya,

Please try to add this code (in bold).

SELECT OBJECTID VALUE_OLD VALUE_NEW FROM cdpos INTO TABLE it_cdpos FOR

ALL ENTRIES

IN IT_MARA WHERE <b>OBJECTCLAS = 'MATERIAL'</b> and

OBJECTID = it_mara-matnr and tabname = 'MARA'

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

Regards,

Ferry Lianto

4 REPLIES 4
Read only

Former Member
0 Likes
467

Hi Priya,

Please try to add this code (in bold).

SELECT OBJECTID VALUE_OLD VALUE_NEW FROM cdpos INTO TABLE it_cdpos FOR

ALL ENTRIES

IN IT_MARA WHERE <b>OBJECTCLAS = 'MATERIAL'</b> and

OBJECTID = it_mara-matnr and tabname = 'MARA'

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

Regards,

Ferry Lianto

Read only

0 Likes
466

Its working fine . Thanks alot Ferry

Read only

Former Member
0 Likes
466

this code is ok...U can't do any more performance tuning as everything is in place...Just the case is when run online it may take more time, so better execute in background...

Read only

Former Member
0 Likes
466

Hi

U should use the objetc class MATERIAL

Max