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
854

Hi all,

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

REPORT ZWRLOMDMM_PMG_PHWEB_PLD NO STANDARD PAGE HEADING

LINE-SIZE 120

LINE-COUNT 65

MESSAGE-ID 00.

----


  • TABLES *

----


TABLES: MARA . "General Material Data

----


  • Global-variables.

----


DATA: STIME LIKE BDCP-CRETIME.

DATA: ETIME LIKE BDCP-CRETIME.

----


  • TYPE-POOLS *

----


TYPE-POOLS:SLIS .

DATA:FIELDCATALOG_BASIC TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

GD_REPID LIKE SY-REPID.

----


  • INTERNAL TABLES *

----


*Internal Tables to Get Data.

*Internal Table For MARA Table.

DATA:BEGIN OF T_MARA OCCURS 0 ,

MATNR LIKE MARA-MATNR,

MTART LIKE MARA-MTART,

ERSDA LIKE MARA-ERSDA,

ERNAM LIKE MARA-ERNAM,

AENAM LIKE MARA-AENAM,

SPART LIKE MARA-SPART,

LAEDA LIKE MARA-LAEDA,

END OF T_MARA.

*Internal Table For ZWPBPH Table.

DATA:BEGIN OF T_ZWPBPH OCCURS 0 ,

PBPINO LIKE ZWPBPH-PBPINO,

PBPAPINO LIKE ZWPBPH-PBPAPINO,

END OF T_ZWPBPH.

*Internal Table For Basic List Field Catalog.

DATA:BEGIN OF T_ALV OCCURS 0 ,

MATNR LIKE MARA-MATNR,

MTART LIKE MARA-MTART,

ERSDA LIKE MARA-ERSDA,

ERNAM LIKE MARA-ERNAM,

SPART LIKE MARA-SPART,

SPART1(3),

USERNAME LIKE CDHDR-USERNAME,

UDATE LIKE CDHDR-UDATE,

UTIME LIKE CDHDR-UTIME,

END OF T_ALV.

*Internal Table For BDCP

DATA: BEGIN OF T_BDCP OCCURS 0 ,

CDOBJID LIKE MARA-MATNR,

CRETIME LIKE BDCP-CRETIME,

USRNAME LIKE BDCP-USRNAME,

END OF T_BDCP .

*Internal Table For Model

DATA:T_MODEL LIKE T_ZWPBPH OCCURS 0 WITH HEADER LINE.

*Internal Table For Product

DATA:T_PRODUCT LIKE T_ZWPBPH OCCURS 0 WITH HEADER LINE.

*Internal Table For Family

DATA:T_FAMILY LIKE T_ZWPBPH OCCURS 0 WITH HEADER LINE.

*Internal Table For Line

DATA:T_LINE LIKE T_ZWPBPH OCCURS 0 WITH HEADER LINE.

*Internal Table For Type

DATA:T_TYPE LIKE T_ZWPBPH OCCURS 0 WITH HEADER LINE.

*Internal Table For Cdpos.

DATA:T_CDPOS LIKE CDPOS OCCURS 0 WITH HEADER LINE.

*Internal Table For CDHDR.

DATA:T_CDHDR LIKE CDHDR .

RANGES : cretime FOR bdcp-cretime.

DATA:T_MARA_HASH LIKE HASHED TABLE OF T_MARA

WITH UNIQUE KEY MATNR WITH HEADER LINE.

DATA:T_MODEL_HASH LIKE HASHED TABLE OF T_MODEL

WITH UNIQUE KEY PBPINO WITH HEADER LINE.

DATA:T_PRODUCT_HASH LIKE HASHED TABLE OF T_PRODUCT

WITH UNIQUE KEY PBPINO WITH HEADER LINE.

DATA:T_FAMILY_HASH LIKE HASHED TABLE OF T_FAMILY

WITH UNIQUE KEY PBPINO WITH HEADER LINE.

DATA:T_LINE_HASH LIKE HASHED TABLE OF T_LINE

WITH UNIQUE KEY PBPINO WITH HEADER LINE.

DATA:T_TYPE_HASH LIKE HASHED TABLE OF T_TYPE

WITH UNIQUE KEY PBPINO WITH HEADER LINE.

----


  • SELECTION SCREEN *

----


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

PARAMETERS: P_MATN RADIOBUTTON GROUP R1 USER-COMMAND run default 'X'.

SELECT-OPTIONS: P_MATNR FOR MARA-MATNR MODIF ID SC1 .

PARAMETERS: P_DAT RADIOBUTTON GROUP R1 .

SELECT-OPTIONS: P_DATE FOR SY-DATUM MODIF ID SC2.

PARAMETERS: P_CDAT RADIOBUTTON GROUP R1 .

SELECT-OPTIONS: P_CDATE FOR SY-DATUM MODIF ID SC3 .

PARAMETERS: P_DIV RADIOBUTTON GROUP R1 .

SELECT-OPTIONS: : P_DIVIS for mara-spart MODIF ID SC4.

SELECTION-SCREEN END OF BLOCK b1.

----


  • INITIALIZATION *

----


INITIALIZATION.

REFRESH: T_MARA,

T_ZWPBPH,

T_ALV,

T_MODEL,

T_PRODUCT,

T_FAMILY,

T_LINE,

T_TYPE.

CLEAR: T_MARA,

T_ZWPBPH,

T_ALV,

T_MODEL,

T_PRODUCT,

T_FAMILY,

T_LINE,

T_TYPE.

GD_REPID = SY-REPID.

----


*AT SELECTION-SCREEN OUTPUT.

----


AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF P_MATN = 'X'.

FREE : P_DIVIS,P_DATE,P_CDATE.

IF SCREEN-GROUP1 = 'SC2' or SCREEN-GROUP1 = 'SC3'

or SCREEN-GROUP1 = 'SC4'.

SCREEN-INPUT = 0.

MODIFY SCREEN.

CONTINUE.

ENDIF .

ENDIF.

IF P_DAT = 'X' .

FREE : P_MATNR,P_DIVIS,P_CDATE.

IF SCREEN-GROUP1 = 'SC1' or SCREEN-GROUP1 = 'SC3'

or SCREEN-GROUP1 = 'SC4'.

SCREEN-INPUT = 0.

MODIFY SCREEN.

CONTINUE.

ENDIF .

ENDIF.

IF P_CDAT = 'X' .

FREE : P_MATNR,P_DIVIS,P_DATE.

IF SCREEN-GROUP1 = 'SC1' or SCREEN-GROUP1 = 'SC2'

or SCREEN-GROUP1 = 'SC4'.

SCREEN-INPUT = 0.

MODIFY SCREEN.

CONTINUE.

ENDIF .

ENDIF.

IF P_DIV = 'X'.

FREE : P_DATE,P_MATNR,P_CDATE.

IF SCREEN-GROUP1 = 'SC1' or SCREEN-GROUP1 = 'SC2'

or SCREEN-GROUP1 = 'SC3'.

SCREEN-INPUT = 0.

MODIFY SCREEN.

CONTINUE.

ENDIF .

ENDIF.

ENDLOOP.

----


  • START-OF-SELECTION *

----


START-OF-SELECTION.

PERFORM GET_FIELDCATALOG_BASIC.

  • PERFORM GET_FIELDCATALOG_SECONDARY.

PERFORM POPULATE_DATA.

----


  • END-OF-SELECTION *

----


END-OF-SELECTION.

&----


*& FORM GET_FIELDCATALOG_BASIC.

&----


*

  • Get Fieldcatalog For Basic List

FORM GET_FIELDCATALOG_BASIC.

FIELDCATALOG_BASIC-FIELDNAME = 'MATNR'.

FIELDCATALOG_BASIC-SELTEXT_M = 'Material Number'.

FIELDCATALOG_BASIC-COL_POS = 0.

FIELDCATALOG_BASIC-OUTPUTLEN = 20.

FIELDCATALOG_BASIC-EMPHASIZE = 'X'.

FIELDCATALOG_BASIC-KEY = 'X'.

APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.

CLEAR FIELDCATALOG_BASIC.

FIELDCATALOG_BASIC-FIELDNAME = 'MTART'.

FIELDCATALOG_BASIC-SELTEXT_M = 'Material Type'.

FIELDCATALOG_BASIC-COL_POS = 0.

FIELDCATALOG_BASIC-OUTPUTLEN = 15.

FIELDCATALOG_BASIC-EMPHASIZE = 'X'.

FIELDCATALOG_BASIC-KEY = 'X'.

APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.

CLEAR FIELDCATALOG_BASIC.

FIELDCATALOG_BASIC-FIELDNAME = 'ERSDA'.

FIELDCATALOG_BASIC-SELTEXT_M = 'Created Date'.

FIELDCATALOG_BASIC-COL_POS = 0.

FIELDCATALOG_BASIC-OUTPUTLEN = 12.

FIELDCATALOG_BASIC-EMPHASIZE = 'X'.

FIELDCATALOG_BASIC-KEY = 'X'.

APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.

CLEAR FIELDCATALOG_BASIC.

FIELDCATALOG_BASIC-FIELDNAME = 'ERNAM'.

FIELDCATALOG_BASIC-SELTEXT_M = 'Created By'.

FIELDCATALOG_BASIC-COL_POS = 0.

FIELDCATALOG_BASIC-OUTPUTLEN = 15.

FIELDCATALOG_BASIC-EMPHASIZE = 'X'.

FIELDCATALOG_BASIC-KEY = 'X'.

APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.

CLEAR FIELDCATALOG_BASIC.

FIELDCATALOG_BASIC-FIELDNAME = 'SPART'.

FIELDCATALOG_BASIC-SELTEXT_M = 'Division PMG'.

FIELDCATALOG_BASIC-COL_POS = 0.

FIELDCATALOG_BASIC-OUTPUTLEN = 8.

FIELDCATALOG_BASIC-EMPHASIZE = 'X'.

FIELDCATALOG_BASIC-KEY = 'X'.

APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.

CLEAR FIELDCATALOG_BASIC.

FIELDCATALOG_BASIC-FIELDNAME = 'SPART1'.

FIELDCATALOG_BASIC-SELTEXT_M = 'Division PhWEB'.

FIELDCATALOG_BASIC-COL_POS = 0.

FIELDCATALOG_BASIC-OUTPUTLEN = 8.

FIELDCATALOG_BASIC-EMPHASIZE = 'X'.

FIELDCATALOG_BASIC-KEY = 'X'.

APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.

CLEAR FIELDCATALOG_BASIC.

FIELDCATALOG_BASIC-FIELDNAME = 'USERNAME'.

FIELDCATALOG_BASIC-SELTEXT_M = 'Changed By'.

FIELDCATALOG_BASIC-COL_POS = 0.

FIELDCATALOG_BASIC-OUTPUTLEN = 14.

FIELDCATALOG_BASIC-EMPHASIZE = 'X'.

FIELDCATALOG_BASIC-KEY = 'X'.

APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.

CLEAR FIELDCATALOG_BASIC.

FIELDCATALOG_BASIC-FIELDNAME = 'UDATE'.

FIELDCATALOG_BASIC-SELTEXT_M = 'Changed ON'.

FIELDCATALOG_BASIC-COL_POS = 0.

FIELDCATALOG_BASIC-OUTPUTLEN = 14.

FIELDCATALOG_BASIC-EMPHASIZE = 'X'.

FIELDCATALOG_BASIC-KEY = 'X'.

APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.

CLEAR FIELDCATALOG_BASIC.

FIELDCATALOG_BASIC-FIELDNAME = 'UTIME'.

FIELDCATALOG_BASIC-SELTEXT_M = 'Changed Time'.

FIELDCATALOG_BASIC-COL_POS = 0.

FIELDCATALOG_BASIC-OUTPUTLEN = 14.

FIELDCATALOG_BASIC-EMPHASIZE = 'X'.

FIELDCATALOG_BASIC-KEY = 'X'.

FIELDCATALOG_BASIC-no_zero = 'X' .

APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.

CLEAR FIELDCATALOG_BASIC.

ENDFORM. "GET_FIELDCATALOG_BASIC

&----


*& FORM POPULATE_DATA

&----


FORM POPULATE_DATA.

*Get Data From MARA And ZWPBPH Tables

DATA:V_COUNT(10) TYPE C.

IF P_MATN = 'X'.

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

T_MARA where MATNR IN P_MATNR .

T_MARA_HASH[] = T_MARA[].

IF SY-SUBRC <> 0.

MESSAGE 'Invalid Material Number' TYPE 'E'.

ENDIF.

ELSEIF P_DAT = 'X' AND P_DATE IS INITIAL .

P_DATE-LOW = '00010101'.

P_DATE-HIGH = SY-DATUM.

CONCATENATE P_DATE-LOW '000000' INTO STIME.

CONCATENATE P_DATE-HIGH sy-uzeit INTO ETIME.

cretime-sign = 'I'.

cretime-option = 'BT'.

cretime-low = stime.

cretime-high = etime.

APPEND cretime.

CLEAR cretime.

SELECT CDOBJID FROM BDCP INTO TABLE T_BDCP WHERE CDOBJCL = 'MATERIAL'

AND CRETIME IN CRETIME AND TABNAME ='MARA' AND FLDNAME ='SPART'.

IF SY-SUBRC = 0.

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

T_MARA FOR ALL ENTRIES IN T_BDCP where MATNR = T_BDCP-CDOBJID .

T_MARA_HASH[] = T_MARA[].

IF SY-SUBRC <> 0.

MESSAGE 'Invalid Date Range' TYPE 'E'.

ENDIF.

ENDIF.

IF SY-SUBRC <> 0.

MESSAGE 'Invalid Date Range' TYPE 'E'.

ENDIF.

ELSEIF P_DAT = 'X' AND P_DATE IS NOT INITIAL .

CONCATENATE P_DATE-LOW '000000' INTO STIME.

CONCATENATE P_DATE-HIGH sy-uzeit INTO ETIME.

cretime-sign = 'I'.

cretime-option = 'BT'.

cretime-low = stime.

cretime-high = etime.

APPEND cretime.

CLEAR cretime.

SELECT CDOBJID FROM BDCP INTO TABLE T_BDCP WHERE CDOBJCL = 'MATERIAL'

AND CRETIME IN CRETIME AND TABNAME ='MARA' AND FLDNAME ='SPART'.

IF SY-SUBRC = 0.

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

T_MARA FOR ALL ENTRIES IN T_BDCP where MATNR = T_BDCP-CDOBJID .

T_MARA_HASH[] = T_MARA[].

IF SY-SUBRC <> 0.

MESSAGE 'Invalid Date Range' TYPE 'E'.

ENDIF.

ENDIF.

ELSEIF P_CDAT = 'X'.

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

T_MARA where ERSDA IN P_CDATE .

T_MARA_HASH[] = T_MARA[].

ELSEIF P_DIV = 'X'.

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

T_MARA where SPART IN P_DIVIS .

T_MARA_HASH[] = T_MARA[].

IF SY-SUBRC <> 0.

MESSAGE 'Invalid Division' TYPE 'E'.

ENDIF.

ENDIF.

IF T_MARA[] IS NOT INITIAL .

SELECT PBPINO PBPAPINO FROM ZWPBPH INTO TABLE T_ZWPBPH FOR ALL

ENTRIES IN T_MARA WHERE PBPINO = T_MARA-MATNR.

IF T_ZWPBPH[] IS NOT INITIAL .

SELECT PBPINO PBPAPINO FROM ZWPBPH INTO TABLE T_MODEL FOR ALL

ENTRIES IN T_ZWPBPH WHERE PBPINO = T_ZWPBPH-PBPAPINO.

T_MODEL_HASH[] = T_MODEL[].

IF T_MODEL[] IS NOT INITIAL.

SELECT PBPINO PBPAPINO FROM ZWPBPH INTO TABLE T_PRODUCT FOR ALL

ENTRIES IN T_MODEL WHERE PBPINO = T_MODEL-PBPAPINO.

T_PRODUCT_HASH[] = T_PRODUCT[].

IF T_PRODUCT[] IS NOT INITIAL.

SELECT PBPINO PBPAPINO FROM ZWPBPH INTO TABLE T_FAMILY FOR ALL

ENTRIES IN T_PRODUCT WHERE PBPINO = T_PRODUCT-PBPAPINO.

T_FAMILY_HASH[] = T_FAMILY[].

IF T_FAMILY[] IS NOT INITIAL.

SELECT PBPINO PBPAPINO FROM ZWPBPH INTO TABLE T_LINE FOR ALL

ENTRIES IN T_FAMILY WHERE PBPINO = T_FAMILY-PBPAPINO.

T_LINE_HASH[] = T_LINE[].

IF T_LINE[] IS NOT INITIAL.

SELECT PBPINO PBPAPINO FROM ZWPBPH INTO TABLE T_TYPE FOR ALL

ENTRIES IN T_LINE WHERE PBPINO = T_LINE-PBPAPINO.

T_TYPE_HASH[] = T_TYPE[].

ENDIF.

ENDIF.

ENDIF.

ENDIF.

ENDIF.

ENDIF.

IF SY-SUBRC = 0.

LOOP AT T_ZWPBPH.

READ TABLE T_MODEL_HASH WITH KEY PBPINO = T_ZWPBPH-PBPAPINO.

IF SY-SUBRC = 0.

READ TABLE T_PRODUCT_HASH WITH KEY PBPINO = T_MODEL_HASH-PBPAPINO.

ELSE.

CONTINUE.

ENDIF.

IF SY-SUBRC = 0.

READ TABLE T_FAMILY_HASH WITH KEY PBPINO = T_PRODUCT_HASH-PBPAPINO.

ELSE.

CONTINUE.

ENDIF.

IF SY-SUBRC = 0.

READ TABLE T_LINE_HASH WITH KEY PBPINO = T_FAMILY_HASH-PBPAPINO.

ELSE.

CONTINUE.

ENDIF.

IF SY-SUBRC = 0.

READ TABLE T_TYPE_HASH WITH KEY PBPINO = T_LINE_HASH-PBPAPINO.

ELSE.

CONTINUE.

ENDIF.

IF SY-SUBRC = 0.

READ TABLE T_MARA_HASH WITH KEY MATNR = T_ZWPBPH-PBPINO.

IF SY-SUBRC = 0.

IF T_MARA_HASH-SPART <> T_TYPE_HASH-PBPAPINO+1(2).

MOVE-CORRESPONDING T_MARA_HASH TO T_ALV.

T_ALV-MATNR = T_ZWPBPH-PBPINO.

T_ALV-SPART1 = T_TYPE_HASH-PBPAPINO+1(2).

SELECT * FROM CDPOS INTO TABLE T_CDPOS WHERE OBJECTCLAS ='MATERIAL'

AND OBJECTID = T_ZWPBPH-PBPINO AND FNAME = 'SPART'.

IF SY-SUBRC = 0.

DESCRIBE TABLE T_CDPOS LINES V_COUNT.

READ TABLE T_CDPOS INDEX V_COUNT.

SELECT SINGLE * FROM CDHDR INTO T_CDHDR WHERE OBJECTCLAS ='MATERIAL'

AND OBJECTID = T_CDPOS-OBJECTID AND CHANGENR = T_CDPOS-CHANGENR.

IF SY-SUBRC = 0.

MOVE-CORRESPONDING T_CDHDR TO T_ALV.

ENDIF.

ENDIF.

ENDIF.

ENDIF.

ENDIF.

IF T_ALV-MATNR <> SPACE.

APPEND T_ALV.

CLEAR T_ALV.

ENDIF.

ENDLOOP.

ENDIF.

SORT T_ALV BY MATNR.

call function 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = GD_REPID

it_fieldcat = FIELDCATALOG_BASIC[]

i_save = 'X'

TABLES

t_outtab = T_ALV

EXCEPTIONS

program_error = 1

others = 2.

ENDFORM. "POPULATE_DATA

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
805

Try this:


SORT: t_model_hash   BY pbpino,
      t_product_hash BY pbpino,
      t_family_hash  BY pbpino,
      t_line_hash    BY pbpino,
      t_type_hash    BY pbpino.

READ TABLE t_model_hash WITH KEY pbpino = t_zwpbph-pbpapino
    BINARY SEARCH.

IF sy-subrc = 0.
  READ TABLE t_product_hash WITH KEY pbpino = t_model_hash-pbpapino
    BINARY SEARCH.
ELSE.
  CONTINUE.
ENDIF.

IF sy-subrc = 0.
  READ TABLE t_family_hash WITH KEY pbpino = t_product_hash-pbpapino
    BINARY SEARCH.
ELSE.
  CONTINUE.
ENDIF.

IF sy-subrc = 0.
  READ TABLE t_line_hash WITH KEY pbpino = t_family_hash-pbpapino
    BINARY SEARCH.
ELSE.
  CONTINUE.
ENDIF.

IF sy-subrc = 0.
  READ TABLE t_type_hash WITH KEY pbpino = t_line_hash-pbpapino
    BINARY SEARCH.
ELSE.
  CONTINUE.
ENDIF.

Rob

5 REPLIES 5
Read only

Former Member
0 Likes
805

These two select statements are inside a loop,

SELECT * FROM CDPOS INTO TABLE T_CDPOS WHERE OBJECTCLAS ='MATERIAL'

AND OBJECTID = T_ZWPBPH-PBPINO AND FNAME = 'SPART'.

IF SY-SUBRC = 0.

DESCRIBE TABLE T_CDPOS LINES V_COUNT.

READ TABLE T_CDPOS INDEX V_COUNT.

SELECT SINGLE * FROM CDHDR INTO T_CDHDR WHERE OBJECTCLAS ='MATERIAL'

AND OBJECTID = T_CDPOS-OBJECTID AND CHANGENR = T_CDPOS-CHANGENR.

IF SY-SUBRC = 0.

MOVE-CORRESPONDING T_CDHDR TO T_ALV.

If they are outside the loop it will boost the performance.

Regards

Kathirvel

Read only

Former Member
0 Likes
805

hi,

1. Before for all entries statement of all the select statements check whether the table has any value or not i.,e if not t_ekbe[] is initial.

2. Avoid using select statements within a loop .

Regards,

Santosh

Read only

Former Member
0 Likes
806

Try this:


SORT: t_model_hash   BY pbpino,
      t_product_hash BY pbpino,
      t_family_hash  BY pbpino,
      t_line_hash    BY pbpino,
      t_type_hash    BY pbpino.

READ TABLE t_model_hash WITH KEY pbpino = t_zwpbph-pbpapino
    BINARY SEARCH.

IF sy-subrc = 0.
  READ TABLE t_product_hash WITH KEY pbpino = t_model_hash-pbpapino
    BINARY SEARCH.
ELSE.
  CONTINUE.
ENDIF.

IF sy-subrc = 0.
  READ TABLE t_family_hash WITH KEY pbpino = t_product_hash-pbpapino
    BINARY SEARCH.
ELSE.
  CONTINUE.
ENDIF.

IF sy-subrc = 0.
  READ TABLE t_line_hash WITH KEY pbpino = t_family_hash-pbpapino
    BINARY SEARCH.
ELSE.
  CONTINUE.
ENDIF.

IF sy-subrc = 0.
  READ TABLE t_type_hash WITH KEY pbpino = t_line_hash-pbpapino
    BINARY SEARCH.
ELSE.
  CONTINUE.
ENDIF.

Rob

Read only

0 Likes
805

There is a secondary index for BDCP on CRETIME and CDOBJCL so, so long as your range on CRETIME is not empty and mot too large, you should be OK there.

Rob

Read only

Former Member
0 Likes
805

The Table BDCP select is causing the performance issue , as you are not passing the primary key field.

insted you can use the Functional modules for reading the change pointers.

Try FM : CHANGE_POINTERS_READ.

Hope this will be helpful !!

Thanks,

Sudheer