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

Former Member
0 Likes
681

Hi,

I am gettinf less ABAP performance in SE30 in my code.

So pls tell me what to do in my programme.

Here is my code.

TABLES:marc, "Plant Data for Material

makt, "Material Descriptions

mara, "General Material Data

ekko, "Purchasing Document Header

EKPO, "Purchasing Document Item

t604, "Foreign Trade: Commodity Code

lfa1, "Vendor Master

t023t, "Material Group Descriptions

t001w, "Plants/Branches

cdpos, "Change document items

cdhdr. "Change document header

TYPE-POOLS: slis.

SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-001.

SELECT-OPTIONS:

s_werks FOR marc-werks, "Plant

s_spras FOR makt-spras, "Language Key

s_matnr FOR mara-matnr, "Material Number

s_ersda FOR mara-ersda, "Material Creation Date

s_vpsta FOR mara-vpsta, "Maintenance Status

s_matkl FOR mara-matkl, "Material Group

s_land1 FOR t604-land1, "Country Key

s_stawn FOR marc-stawn, "Commodity Code

s_wgbez FOR t023t-wgbez, "Text: Material group

s_ebeln FOR ekko-ebeln, "Purchase order

s_aedat FOR ekko-ebeln, "Creation Date

s_lifnr FOR ekko-lifnr. "Vendor

SELECTION-SCREEN END OF BLOCK block1.

*******sandeep for list view.********

SELECTION-SCREEN BEGIN OF BLOCK 2 WITH FRAME TITLE TEXT-019.

PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT.

SELECTION-SCREEN END OF BLOCK 2.

*******sandeep for list view.********

*************Declaration*************

DATA: BEGIN OF itab_mara OCCURS 0,

matnr LIKE mara-matnr,

mfrpn LIKE mara-mfrpn,

mfrnr LIKE mara-mfrnr,

matkl LIKE mara-matkl,

werks LIKE marc-werks,

stawn LIKE marc-stawn,

mtver LIKE marc-mtver,

herkl LIKE marc-herkl,

maktx LIKE makt-maktx,

END OF itab_mara.

DATA: BEGIN OF itab_makt OCCURS 0,

matnr LIKE makt-matnr,

maktx LIKE makt-maktx,

END OF itab_makt.

DATA: BEGIN OF itab_mara1 OCCURS 0,

objectid LIKE cdpos-objectid,

mfrpn LIKE mara-mfrpn,

mfrnr LIKE mara-mfrnr,

matkl LIKE mara-matkl,

werks LIKE marc-werks,

stawn LIKE marc-stawn,

mtver LIKE marc-mtver,

herkl LIKE marc-herkl,

maktx LIKE makt-maktx,

END OF itab_mara1.

DATA: BEGIN OF itab_t023t OCCURS 0,

matkl LIKE t023t-matkl,

wgbez LIKE t023t-wgbez,

END OF itab_t023t.

*DATA: ITAB_EKPO TYPE STANDARD TABLE OF EKPO WITH HEADER LINE.

DATA: BEGIN OF itab_ekpo OCCURS 0,

ebeln LIKE ekpo-ebeln,

matnr LIKE ekpo-matnr,

lifnr LIKE ekko-lifnr,

END OF itab_ekpo.

DATA: BEGIN OF itab_lfa1 OCCURS 0,

lifnr LIKE lfa1-lifnr,

name1 LIKE lfa1-name1,

END OF itab_lfa1.

DATA: BEGIN OF itab_t604 OCCURS 0,

stawn LIKE t604t-stawn,

text1 LIKE T604T-text1,

END OF itab_t604.

DATA: BEGIN OF itab_cdpos OCCURS 0,

objectclas LIKE cdpos-objectclas,

objectid TYPE cdpos-objectid,

changenr TYPE cdpos-CHANGENR,

tabkey type cdpos-tabkey,

END OF itab_cdpos.

DATA: BEGIN OF itab_cdhdr OCCURS 0,

changenr LIKE cdhdr-changenr,

username LIKE cdhdr-username,

udate LIKE cdhdr-udate,

OBJECTID like CDHDR-OBJECTID,

END OF itab_cdhdr.

DATA: BEGIN OF itab_final OCCURS 0,

werks LIKE marc-werks,

stawn LIKE marc-stawn,

mtver LIKE marc-mtver,

herkl LIKE marc-herkl,

matnr LIKE mara-matnr,

mfrpn LIKE mara-mfrpn,

mfrnr LIKE mara-mfrnr,

matkl LIKE mara-matkl,

ebeln LIKE ekpo-ebeln,

lifnr LIKE ekko-lifnr,

name1 LIKE lfa1-name1,

VENDORNAME LIKE lfa1-name1,

  • stawn LIKE t604-stawn,

text1 LIKE T604T-text1,

maktx LIKE makt-maktx,

wgbez LIKE t023t-wgbez,

changenr LIKE cdhdr-changenr,

username LIKE cdhdr-username,

udate LIKE cdhdr-udate,

END OF itab_final.

*

**DATA: wa_marc LIKE itab_marc.

*DATA: wa_mara LIKE itab_mara.

*DATA: wa_ekko LIKE itab_ekko.

*DATA: wa_ekpo LIKE itab_ekpo.

*DATA: wa_lfa1 LIKE itab_lfa1.

*DATA: wa_t604 LIKE itab_t604.

**DATA: wa_makt LIKE itab_makt.

  • DATA:ve_ausw TYPE c,

  • ve_lines TYPE i.

DATA: fieldcat TYPE slis_t_fieldcat_alv,

fieldcat_ln LIKE LINE OF fieldcat.

DATA : col_pos TYPE i.

DATA: G_REPID LIKE SY-REPID,

G_SAVE(1) TYPE C,

GX_VARIANT LIKE DISVARIANT,

G_VARIANT LIKE DISVARIANT,

G_EXIT(1) TYPE C.

********INITIALIZATION***************

INITIALIZATION.

G_REPID = SY-REPID.

G_SAVE = 'A'.

  • ************SANDEEP LIST VIEWER*************

PERFORM VARIANT_INIT.

  • Get default variant

GX_VARIANT = G_VARIANT.

CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'

EXPORTING

I_SAVE = G_SAVE

CHANGING

CS_VARIANT = GX_VARIANT

EXCEPTIONS

NOT_FOUND = 2.

IF SY-SUBRC = 0.

P_VARI = GX_VARIANT-VARIANT.

ENDIF.

*************VALIDATION************

AT SELECTION-SCREEN ON s_werks.

IF s_werks-low <> space.

SELECT SINGLE * from T001W

WHERE werks = s_werks-low.

IF sy-subrc <> 0.

MESSAGE e011 WITH 'Invalid Plant Code'

s_werks-low '' ''.

ENDIF.

ENDIF.

IF s_werks-high <> space.

SELECT SINGLE * from T001W

WHERE werks = s_werks-high.

IF sy-subrc <> 0.

MESSAGE e011 WITH 'Invalid Plant Code'

s_werks-high '' ''.

ENDIF.

ENDIF.

AT SELECTION-SCREEN ON s_matnr.

IF s_matnr-low <> space.

SELECT single * from MARA

WHERE matnr = s_matnr-low.

IF sy-subrc <> 0.

MESSAGE e011 WITH 'Invalid Material number'

s_matnr '' ''.

ENDIF.

ENDIF.

IF s_matnr-high <> space.

SELECT single * from MARA

WHERE matnr = s_matnr-high.

IF sy-subrc <> 0.

MESSAGE e011 WITH 'Invalid Material number'

s_matnr-high '' ''.

ENDIF.

ENDIF.

START-OF-SELECTION.

PERFORM extract_data.

PERFORM extract_data_t023t using itab_mara.

PERFORM extract_data_ekpo using itab_mara.

PERFORM extract_data_lfa1 using itab_mara.

PERFORM extract_data_t604 using itab_mara.

PERFORM extract_data_cdhdr.

END-OF-SELECTION.

PERFORM build_print.

PERFORM build_fieldcat.

PERFORM start_list_viewer.

*********SANDEEP LIST VIEWER*********

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.

PERFORM F4_FOR_VARIANT.

AT SELECTION-SCREEN.

PERFORM PAI_OF_SELECTION_SCREEN.

  • ********** END SANDEEP LIST VIEWER**********

----


  • FORM extract_data *

----


  • ........ *

----


FORM extract_data.

*

  • SELECT amatnr amfrpn amfrnr amatkl

  • bwerks bstawn bmtver bherkl

  • c~maktx

  • INTO TABLE itab_mara

  • FROM ( mara

  • as a

  • INNER JOIN marc as b

  • on amatnr = bmatnr )

  • INNER JOIN makt as c

  • on amatnr = cmatnr

  • WHERE a~matnr IN s_matnr

  • AND a~matkl IN s_matkl

  • AND a~ersda IN s_ersda

  • AND b~werks IN s_werks

  • AND b~stawn IN s_stawn

  • AND c~spras IN s_spras.

*

  • clear: itab_mara.

SELECT amatnr amfrpn amfrnr amatkl

bwerks bstawn bmtver bherkl

  • c~maktx

INTO TABLE itab_mara

FROM mara

as a

INNER JOIN marc as b

on amatnr = bmatnr

  • INNER JOIN makt as c

  • on amatnr = bmatnr

WHERE a~matnr IN s_matnr

AND a~matkl IN s_matkl

AND a~ersda IN s_ersda

AND b~werks IN s_werks

AND b~stawn IN s_stawn.

  • AND c~spras IN s_spras.

IF SY-SUBRC = 0.

SORT itab_mara BY matnr.

ENDIF.

SELECT matnr maktx

INTO TABLE itab_makt

FROM makt

FOR ALL ENTRIES IN itab_mara

WHERE matnr = itab_mara-matnr

AND spras IN s_spras.

IF SY-SUBRC = 0.

SORT itab_makt BY maktx.

ENDIF.

ENDFORM.

&----


*& Form extract_data_t023t

&----


  • text

----


  • -->P_ITAB_MARA text

----


FORM extract_data_t023t USING P_ITAB_MARA.

*IF NOT itab_mara IS INITIAL.

SELECT matkl wgbez

INTO table itab_t023t

FROM t023t

FOR ALL ENTRIES IN itab_mara

WHERE spras IN s_spras

AND matkl = itab_mara-matkl

AND wgbez IN s_wgbez.

*ENDIF.

IF SY-SUBRC = 0.

SORT itab_t023t BY matkl.

ENDIF.

ENDFORM. " extract_data_t023t

&----


*& Form extract_data_ekpo

&----


  • text

----


  • -->P_ITAB_MARA text

----


FORM extract_data_ekpo USING P_ITAB_MARA.

*IF NOT itab_mara IS INITIAL.

SELECT aebeln amatnr b~lifnr

INTO TABLE itab_ekpo

from ekpo as a

INNER JOIN ekko as b

ON aebeln = bebeln

FOR ALL ENTRIES IN itab_mara

WHERE a~matnr = itab_mara-matnr

AND b~lifnr IN s_lifnr

AND a~ebeln IN s_ebeln.

  • ENDIF.

ENDFORM. " extract_data_ekpo

&----


*& Form extract_data_lfa1

&----


  • text

----


  • -->P_ITAB_MARA text

----


FORM extract_data_lfa1 USING P_ITAB_MARA.

*IF NOT itab_mara IS INITIAL.

SELECT lifnr name1

INTO table itab_lfa1

FROM lfa1

FOR ALL ENTRIES IN itab_mara

WHERE lifnr = itab_mara-mfrnr.

SELECT lifnr name1

appending table itab_lfa1

FROM LFA1

FOR ALL ENTRIES IN itab_ekpo

WHERE lifnr = itab_ekpo-lifnr.

IF SY-SUBRC = 0.

SORT itab_lfa1 BY lifnr.

ENDIF.

*ENDIF.

ENDFORM. " extract_data_lfa1

  • sort itab_ekko.

*

&----


*& Form extract_data_t604

&----


  • text

----


  • -->P_ITAB_MARA text

----


FORM extract_data_t604 USING P_ITAB_MARA.

*IF NOT itab_mara IS INITIAL.

SELECT stawn text1

INTO table itab_t604

FROM t604t

FOR ALL ENTRIES IN itab_mara

WHERE stawn = itab_mara-stawn

AND spras IN S_spras

AND land1 IN s_land1.

*ENDIF.

IF SY-SUBRC = 0.

SORT itab_t604 BY stawn.

ENDIF.

ENDFORM. " extract_data_t604

  • SELECT maktx

  • INTO table itab_makt

  • FROM makt

  • FOR ALL ENTRIES IN itab_mara

  • WHERE matnr = itab_mara-matnr.

*loop at itab_mara.

*DATA: field(10) type c.

  • REPLACE itab_mara-matnr with ' ' INTO field.

  • field1 = CONDENSE field NO-GAPS.

  • ENDLOOP.

*

&----


*& Form extract_data_cdhdr

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM extract_data_cdhdr.

*

itab_mara1[] = itab_mara[].

SELECT objectclas objectid changenr tabkey

INTO TABLE itab_cdpos

from cdpos

  • FOR ALL ENTRIES IN itab_mara1

WHERE objectid IN S_MATNR " itab_mara1-objectid

AND TABNAME = 'MARC'

AND FNAME = 'STAWN'.

  • AND OBJECTID IN S_MATNR.

if not s_werks[] is initial.

Delete itab_cdpos where NOT tabkey+21(4) IN s_werks.

endif.

IF NOT itab_cdpos[] IS INITIAL.

SELECT changenr username udate OBJECTID

INTO TABLE itab_cdhdr

FROM cdhdr

FOR ALL ENTRIES IN itab_cdpos

WHERE changenr = itab_cdpos-changenr

AND OBJECTCLAS = itab_cdpos-objectclas

AND objectid = itab_cdpos-objectid.

if sy-subrc eq 0.

sort itab_cdhdr descending by udate.

SORT itab_cdhdr BY objectid.

endif.

ENDIF.

ENDFORM. " extract_data_cdhdr

----


  • FORM build_print *

----


  • ........ *

----


FORM build_print.

LOOP AT itab_ekpo."into wa_mara.

itab_final-ebeln = itab_ekpo-ebeln.

itab_final-lifnr = itab_ekpo-lifnr.

*loop at itab_ekpo.

Read table itab_mara with key matnr = itab_ekpo-matnr.

itab_final-matnr = itab_mara-matnr.

itab_final-mfrpn = itab_mara-mfrpn.

itab_final-mfrnr = itab_mara-mfrnr.

itab_final-matkl = itab_mara-matkl.

itab_final-werks = itab_mara-werks.

itab_final-stawn = itab_mara-stawn.

itab_final-mtver = itab_mara-mtver.

itab_final-herkl = itab_mara-herkl.

  • itab_final-maktx = itab_mara-maktx.

READ TABLE itab_makt with key matnr = itab_mara-matnr BINARY SEARCH.

itab_final-maktx = itab_makt-maktx.

CLEAR:itab_makt.

READ TABLE itab_t023t with key matkl = itab_mara-matkl BINARY SEARCH.

itab_final-wgbez = itab_t023t-wgbez.

CLEAR:itab_t023t.

  • SORT itab_ekpo BY matnr.

*READ TABLE itab_ekpo with key matnr = itab_final-matnr BINARY SEARCH.

  • itab_final-ebeln = itab_ekpo-ebeln.

  • itab_final-lifnr = itab_ekpo-lifnr.

  • CLEAR: itab_ekpo.

  • READ TABLE itab_ekko with key ebeln = itab_ekpo-ebeln.

  • itab_final-lifnr = itab_ekko-lifnr.

READ TABLE itab_lfa1 with key lifnr = itab_mara-mfrnr BINARY SEARCH.

itab_final-name1 = itab_lfa1-name1.

*SORT itab_lfa1 BY lifnr.

READ TABLE itab_lfa1 with key lifnr = itab_ekpo-lifnr BINARY SEARCH.

  • itab_final-lifnr = itab_lfa1-lifnr.

itab_final-vendorname = itab_lfa1-name1.

CLEAR: itab_ekpo.

clear itab_lfa1.

READ TABLE itab_t604 WITH KEY stawn = itab_mara-stawn BINARY SEARCH.

itab_final-text1 = ITAB_t604-text1.

  • LOOP AT ITAB_CDPOS.

*SORT itab_cdhdr BY objectid.

READ TABLE itab_cdhdr WITH KEY OBJECTID = itab_MARA-MATNR BINARY SEARCH.

itab_final-username = itab_cdhdr-username.

itab_final-udate = itab_cdhdr-udate.

APPEND itab_final.

CLEAR:itab_mara.

CLEAR itab_cdhdr.

CLEAR:itab_final.

CLEAR: itab_t604.

ENDLOOP.

ENDFORM.

----


  • FORM start_list_viewer *

----


  • ........ *

----


FORM start_list_viewer.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

IT_FIELDCAT = fieldcat

I_DEFAULT = 'X'

I_SAVE = G_SAVE

  • IT_EVENTS = itab_eventcat

IS_VARIANT = G_VARIANT

TABLES

T_OUTTAB = itab_final

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.

ENDFORM.

----


  • FORM build_fieldcat *

----


  • ........ *

----


FORM build_fieldcat.

ADD 1 TO col_pos.

fieldcat_ln-ref_tabname = 'MARC'.

fieldcat_ln-ref_fieldname = 'WERKS'.

fieldcat_ln-tabname = 'ITAB_FINAL'.

fieldcat_ln-fieldname = 'WERKS'.

fieldcat_ln-col_pos = col_pos.

fieldcat_ln-seltext_l = text-003.

fieldcat_ln-ddictxt = 'L'.

fieldcat_ln-outputlen = 04.

APPEND fieldcat_ln TO fieldcat.

ADD 1 TO col_pos.

fieldcat_ln-ref_tabname = 'MARA'.

fieldcat_ln-ref_fieldname = 'MATNR'.

fieldcat_ln-tabname = 'ITAB_FINAL'.

fieldcat_ln-fieldname = 'MATNR'.

fieldcat_ln-col_pos = col_pos.

fieldcat_ln-seltext_l = text-004.

fieldcat_ln-ddictxt = 'L'.

fieldcat_ln-outputlen = 18.

APPEND fieldcat_ln TO fieldcat.

ADD 1 TO col_pos.

fieldcat_ln-ref_tabname = 'MAKT'.

fieldcat_ln-ref_fieldname = 'MAKTX'.

fieldcat_ln-tabname = 'ITAB_FINAL'.

fieldcat_ln-fieldname = 'MAKTX'.

fieldcat_ln-col_pos = col_pos.

fieldcat_ln-seltext_l = text-005.

fieldcat_ln-ddictxt = 'L'.

fieldcat_ln-outputlen = 40.

APPEND fieldcat_ln TO fieldcat.

ADD 1 TO col_pos.

fieldcat_ln-ref_tabname = 'MARA'.

fieldcat_ln-ref_fieldname = 'MATKL'.

fieldcat_ln-tabname = 'ITAB_FINAL'.

fieldcat_ln-fieldname = 'MATKL'.

fieldcat_ln-col_pos = col_pos.

fieldcat_ln-seltext_l = text-006.

fieldcat_ln-ddictxt = 'L'.

fieldcat_ln-outputlen = 09.

APPEND fieldcat_ln TO fieldcat.

ADD 1 TO col_pos.

fieldcat_ln-ref_tabname = 'T023T'.

fieldcat_ln-ref_fieldname = 'WGBEZ'.

fieldcat_ln-tabname = 'ITAB_FINAL'.

fieldcat_ln-fieldname = 'WGBEZ'.

fieldcat_ln-col_pos = col_pos.

fieldcat_ln-seltext_l = text-007.

fieldcat_ln-ddictxt = 'L'.

fieldcat_ln-outputlen = 20.

APPEND fieldcat_ln TO fieldcat.

ADD 1 TO col_pos.

fieldcat_ln-ref_tabname = 'MARA'.

fieldcat_ln-ref_fieldname = 'MFRPN'.

fieldcat_ln-tabname = 'ITAB_FINAL'.

fieldcat_ln-fieldname = 'MFRPN'.

fieldcat_ln-col_pos = col_pos.

fieldcat_ln-seltext_l = text-008.

fieldcat_ln-ddictxt = 'L'.

fieldcat_ln-outputlen = 40.

APPEND fieldcat_ln TO fieldcat.

ADD 1 TO col_pos.

fieldcat_ln-ref_tabname = 'MARA'.

fieldcat_ln-ref_fieldname = 'MFRNR'.

fieldcat_ln-tabname = 'ITAB_FINAL'.

fieldcat_ln-fieldname = 'MFRNR'.

fieldcat_ln-col_pos = col_pos.

fieldcat_ln-seltext_l = text-009.

fieldcat_ln-ddictxt = 'L'.

fieldcat_ln-outputlen = 10.

APPEND fieldcat_ln TO fieldcat.

ADD 1 TO col_pos.

fieldcat_ln-ref_tabname = 'LFA1'.

fieldcat_ln-ref_fieldname = 'NAME1'.

fieldcat_ln-tabname = 'ITAB_FINAL'.

fieldcat_ln-fieldname = 'NAME1'.

fieldcat_ln-col_pos = col_pos.

fieldcat_ln-seltext_l = text-010.

fieldcat_ln-ddictxt = 'L'.

fieldcat_ln-outputlen = 35.

APPEND fieldcat_ln TO fieldcat.

ADD 1 TO col_pos.

fieldcat_ln-ref_tabname = 'MARC'.

fieldcat_ln-ref_fieldname = 'MTVER'.

fieldcat_ln-tabname = 'ITAB_FINAL'.

fieldcat_ln-fieldname = 'MTVER'.

fieldcat_ln-col_pos = col_pos.

fieldcat_ln-seltext_l = text-011.

fieldcat_ln-ddictxt = 'L'.

fieldcat_ln-outputlen = 04.

APPEND fieldcat_ln TO fieldcat.

ADD 1 TO col_pos.

fieldcat_ln-ref_tabname = 'EKPO'.

fieldcat_ln-ref_fieldname = 'EBELN'.

fieldcat_ln-tabname = 'ITAB_FINAL'.

fieldcat_ln-fieldname = 'EBELN'.

fieldcat_ln-col_pos = col_pos.

fieldcat_ln-seltext_l = text-012.

fieldcat_ln-ddictxt = 'L'.

fieldcat_ln-outputlen = 10.

APPEND fieldcat_ln TO fieldcat.

ADD 1 TO col_pos.

fieldcat_ln-ref_tabname = 'LFA1'.

fieldcat_ln-ref_fieldname = 'VENDORNAME'.

fieldcat_ln-tabname = 'ITAB_FINAL'.

fieldcat_ln-fieldname = 'VENDORNAME'.

fieldcat_ln-col_pos = col_pos.

fieldcat_ln-seltext_l = text-020.

fieldcat_ln-ddictxt = 'L'.

fieldcat_ln-outputlen = 35.

APPEND fieldcat_ln TO fieldcat.

ADD 1 TO col_pos.

fieldcat_ln-ref_tabname = 'EKKO'.

fieldcat_ln-ref_fieldname = 'LIFNR'.

fieldcat_ln-tabname = 'ITAB_FINAL'.

fieldcat_ln-fieldname = 'LIFNR'.

fieldcat_ln-col_pos = col_pos.

fieldcat_ln-seltext_l = text-013.

fieldcat_ln-ddictxt = 'L'.

fieldcat_ln-outputlen = 10.

APPEND fieldcat_ln TO fieldcat.

ADD 1 TO col_pos.

fieldcat_ln-ref_tabname = 'MARC'.

fieldcat_ln-ref_fieldname = 'HERKL'.

fieldcat_ln-tabname = 'ITAB_FINAL'.

fieldcat_ln-fieldname = 'HERKL'.

fieldcat_ln-col_pos = col_pos.

fieldcat_ln-seltext_l = text-014.

fieldcat_ln-ddictxt = 'L'.

fieldcat_ln-outputlen = 3.

APPEND fieldcat_ln TO fieldcat.

ADD 1 TO col_pos.

fieldcat_ln-ref_tabname = 'CDHDR'.

fieldcat_ln-ref_fieldname = 'USERNAME'.

fieldcat_ln-tabname = 'ITAB_FINAL'.

fieldcat_ln-fieldname = 'USERNAME'.

fieldcat_ln-col_pos = col_pos.

fieldcat_ln-seltext_l = text-017.

fieldcat_ln-ddictxt = 'L'.

fieldcat_ln-outputlen = 12.

APPEND fieldcat_ln TO fieldcat.

ADD 1 TO col_pos.

fieldcat_ln-ref_tabname = 'CDHDR'.

fieldcat_ln-ref_fieldname = 'UDATE'.

fieldcat_ln-tabname = 'ITAB_FINAL'.

fieldcat_ln-fieldname = 'UDATE'.

fieldcat_ln-col_pos = col_pos.

fieldcat_ln-seltext_l = text-018.

fieldcat_ln-ddictxt = 'L'.

fieldcat_ln-outputlen = 08.

APPEND fieldcat_ln TO fieldcat.

ADD 1 TO col_pos.

fieldcat_ln-ref_tabname = 'MARC'.

fieldcat_ln-ref_fieldname = 'STAWN'.

fieldcat_ln-tabname = 'ITAB_FINAL'.

fieldcat_ln-fieldname = 'STAWN'.

fieldcat_ln-col_pos = col_pos.

fieldcat_ln-seltext_l = text-015.

fieldcat_ln-ddictxt = 'L'.

fieldcat_ln-outputlen = 17.

APPEND fieldcat_ln TO fieldcat.

ADD 1 TO col_pos.

fieldcat_ln-ref_tabname = 'T604T'.

fieldcat_ln-ref_fieldname = 'TEXT1'.

fieldcat_ln-tabname = 'ITAB_FINAL'.

fieldcat_ln-fieldname = 'TEXT1'.

fieldcat_ln-col_pos = col_pos.

fieldcat_ln-seltext_l = text-016.

fieldcat_ln-ddictxt = 'L'.

fieldcat_ln-outputlen = 40.

APPEND fieldcat_ln TO fieldcat.

ENDFORM.

**********SANDEEP LIST VIEWER*********

FORM F4_FOR_VARIANT.

CALL FUNCTION 'REUSE_ALV_VARIANT_F4'

EXPORTING

IS_VARIANT = G_VARIANT

I_SAVE = G_SAVE

  • I_DISPLAY_VIA_GRID = ' '

IMPORTING

E_EXIT = G_EXIT

ES_VARIANT = GX_VARIANT

EXCEPTIONS

NOT_FOUND = 1 .

IF SY-SUBRC <> 0.

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

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

ELSE.

IF G_EXIT = SPACE.

P_VARI = GX_VARIANT-VARIANT.

ENDIF.

ENDIF.

ENDFORM.

----


  • FORM PAI_OF_SELECTION_SCREEN *

----


  • ........ *

----


FORM PAI_OF_SELECTION_SCREEN.

*

IF NOT P_VARI IS INITIAL.

MOVE G_VARIANT TO GX_VARIANT.

MOVE P_VARI TO GX_VARIANT-VARIANT.

CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'

EXPORTING

I_SAVE = G_SAVE

CHANGING

CS_VARIANT = GX_VARIANT.

G_VARIANT = GX_VARIANT.

ELSE.

PERFORM VARIANT_INIT.

ENDIF.

ENDFORM. "PAI_OF_SELECTION_SCREEN

----


  • FORM VARIANT_INIT *

----


  • ........ *

----


FORM VARIANT_INIT.

*

CLEAR G_VARIANT.

G_VARIANT-REPORT = G_REPID.

ENDFORM. " VARIANT_INIT

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
602

HI,

Dont use SELECT SINGLE *..

instead define a local variable for which you are validating

EG: lv_werks type werks_d.

select single werks from <DBTABLE> into lv_werks where <cond>..

Do use for all entries instead of inner joins.

rewards if useful..

regards,

nazeer

4 REPLIES 4
Read only

Former Member
0 Likes
602

hi,

to improve perfomance of program, aplliey these perfomance ticks.

1) create internal table without header line instead of creating with headerline.

2) while creating internal use TYPE instead of uaisg LIKE key word.

3) in at selection-screen event, u write select query with exactly required fields

insted of writing select *.

4) better to provide default values to the selection-screen fields.

5) once check , are you using peoper tables for reading data from data base tables.

6) also check u r using proper index or not ( table has primary and secondary indexes)

7) if possible use FOR ALL ENTRIES, insted of using JOINS.

😎 you created field catalog manually, if possible call function REUSE_ALV_FIELDCATALOG_MERGE for field headings.

regards,

Ashokreddy.

Read only

Former Member
0 Likes
603

HI,

Dont use SELECT SINGLE *..

instead define a local variable for which you are validating

EG: lv_werks type werks_d.

select single werks from <DBTABLE> into lv_werks where <cond>..

Do use for all entries instead of inner joins.

rewards if useful..

regards,

nazeer

Read only

Former Member
0 Likes
602

Never use * in select statement.

just give what are trhe fileds uneed from the table.

SELECT BUKRS from table /.../

Read only

Former Member
0 Likes
602

hi,

Before running select -- for all entries, make sure that the internal table used in for all entries is not initial.

Eg : YOur query ::

If not itab_mara[] is initial.

SELECT matnr maktx INTO TABLE itab_makt FROM makt FOR ALL ENTRIES IN itab_mara WHERE matnr = itab_mara-matn AND spras IN s_spras.

endif.

This is required because in case if the internal table itab_mara is empty, the select query will run for all entries in the table MARA and it will be highly expensive.

This is for all select queries using For All Entries.

    • Plese reward if found useful.

regards,

sachin