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.