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 problem with coding

Former Member
0 Likes
377

Hi Abapers,

this coding taken more time for execution. For increase the performance for the program what should i do.

CLEAR:GS_VBFA.

LOOP AT GT_SALES_DOC INTO GS_SALES_DOC.

SELECT SINGLE VBELV FROM VBFA CLIENT SPECIFIED INTO GS_VBFA

WHERE MANDT = SY-MANDT

AND VBELN = GS_SALES_DOC-SALES_DOC

%_HINTS ORACLE 'INDEX["VBFA" "VBFA~M01"]'.

SELECT VBELV POSNV VBELN POSNN VBTYP_N RFWRT ERDAT INTO TABLE LT_VBFA FROM VBFA

WHERE VBELV EQ GS_VBFA-VBELV

AND VBTYP_N = 'J'.

SORT LT_VBFA BY VBELN .

LOOP AT LT_VBFA INTO LS_VBFA .

READ TABLE GT_SALES_DOC INTO GS_SALES_DOC WITH KEY SALES_DOC = LS_VBFA-VBELN BINARY SEARCH.

IF sy-subrc = 0.

DELETE GT_SALES_DOC INDEX SY-TABIX.

ENDIF.

GS_FIRST_POD-SAL_ORDER = GS_VBFA-VBELV.

IF LS_VBFA-VBTYP_N EQ 'J'.

  • get outbound delivery

GS_FIRST_POD-OUT_DEL = LS_VBFA-VBELN.

  • get delivery doc date

SELECT SINGLE ERDAT INTO GS_FIRST_POD-DEL_DAT FROM LIKP

WHERE VBELN EQ GS_FIRST_POD-OUT_DEL.

  • get goods issue

SELECT SINGLE VBELN INTO GS_FIRST_POD-GOODS_ISSUE FROM VBFA

WHERE VBELV EQ LS_VBFA-VBELN AND VBTYP_N EQ 'R'.

LV_ERDAT = LS_VBFA-ERDAT.

  • get billing doc

SELECT SINGLE VBELN INTO GS_FIRST_POD-BILL_DOC FROM VBFA

WHERE VBELV EQ LS_VBFA-VBELN AND VBTYP_N EQ 'M'.

ENDIF.

CLEAR LS_VBFA.

IF NOT GS_FIRST_POD-OUT_DEL IS INITIAL.

  • get customer

SELECT SINGLE KUNNR INTO (GS_FIRST_POD-CUST_NO) FROM VBAK

WHERE VBELN EQ GS_VBFA-VBELV. "LV_SALES_DOC.

  • get customer name

SELECT SINGLE NAME1 INTO GS_FIRST_POD-CUST_NAME FROM KNA1

WHERE KUNNR EQ GS_FIRST_POD-CUST_NO.

CONCATENATE GS_FIRST_POD-GOODS_ISSUE LV_ERDAT+0(4) INTO LV_AWKEY .

SELECT SINGLE BELNR INTO GS_FIRST_POD-GI_ACC_DOC

FROM BKPF

WHERE AWKEY = LV_AWKEY.

  • bill doc for Accounting

SELECT SINGLE BELNR INTO GS_FIRST_POD-BILL_ACC_DOC

FROM BKPF

WHERE AWKEY = GS_FIRST_POD-BILL_DOC.

  • profit centre

REFRESH LT_PRCTR.

SELECT PRCTR INTO TABLE LT_PRCTR

FROM LIPS "BSEG

WHERE VBELN EQ GS_FIRST_POD-OUT_DEL. "BELNR = GS_FIRST_POD-BILL_ACC_DOC and bukrs eq 'AU01'.

LOOP AT LT_PRCTR INTO LS_PRCTR .

IF NOT LS_PRCTR-PROFIT_CTR IS INITIAL .

GS_FIRST_POD-PROFIT_CNTR = LS_PRCTR-PROFIT_CTR.

ENDIF.

ENDLOOP.

  • Amount of sale

SELECT WRBTR INTO TABLE LT_WRBTR

FROM BSEG

WHERE BELNR = GS_FIRST_POD-GI_ACC_DOC AND BUKRS EQ 'AU01' AND SHKZG EQ 'S'.

LOOP AT LT_WRBTR INTO LS_WRBTR .

SELECT WRBTR INTO TABLE LT_WRBTR

FROM BSEG

WHERE BELNR = GS_FIRST_POD-GI_ACC_DOC AND BUKRS EQ 'AU01' AND SHKZG EQ 'S'.

LOOP AT LT_WRBTR INTO LS_WRBTR .

GS_FIRST_POD-AMT_SALE = GS_FIRST_POD-AMT_SALE + LS_WRBTR-AMT_WRBTR.

ENDLOOP.

  • selecting the documents based on selection screen filtering

IF GS_SALES_DOC-SALES_DOC EQ GS_FIRST_POD-OUT_DEL .

APPEND GS_FIRST_POD TO GT_FIRST_POD .

ENDIF.

ENDIF.

CLEAR : GS_FIRST_POD.

ENDLOOP.

ENDLOOP.

2 REPLIES 2
Read only

former_member201275
Active Contributor
0 Likes
343

could you post this again in a neater more readable format.

Read only

ThomasZloch
Active Contributor
0 Likes
343

This would be a topic for the "ABAP performance" forum, but for plenty of information on how to find out yourself before asking.

Thread locked.

Thomas