2014 Oct 14 8:19 AM
Dear All
Please help me to improve the performance of below code.
LOOP AT i_ecase INTO wa_ecase.
CALL FUNCTION 'Z_FM24_FALNR_TO_ZUONR'
EXPORTING
falnr = wa_ecase-falnr
lfdnr = wa_ecase-lfdnr
einri = wa_ecase-bukrs "SHS3
IMPORTING
zuonr = wa_zuonr.
*<<<SHS5 INSERT
IF old_zuonr = wa_zuonr AND old_kunnr = wa_ecase-kunnr.
CONTINUE.
ELSE.
MOVE wa_zuonr TO old_zuonr.
MOVE wa_ecase-kunnr TO old_kunnr.
ENDIF.
*<<<SHS5 END OF INSERT
*<<< SHS4
REFRESH patient.
CALL FUNCTION 'Z_FM32_ACTIVE_PATIENT'
EXPORTING
i_patnr = wa_ecase-kunnr
i_inactive = 'X'
IMPORTING
e_patnr = patient_active
TABLES
et_kunnr = patient.
*<<< SHS4
SELECT bkpf~bukrs bseg~zuonr bseg~kunnr bkpf~belnr
bkpf~gjahr bseg~xblnr bkpf~budat bkpf~blart
bseg~dmbtr bseg~hkont bseg~shkzg
bseg~cpudt "ECC1 insert
FROM ( bsid AS bseg INNER JOIN
bkpf AS bkpf ON
bseg~bukrs = bkpf~bukrs AND
bseg~belnr = bkpf~belnr AND
bseg~gjahr = bkpf~gjahr )
APPENDING CORRESPONDING FIELDS OF TABLE i_paydoc
WHERE bseg~bukrs = bukrs_in AND
bseg~zuonr = wa_zuonr AND
* bseg~kunnr = wa_ecase-kunnr and "SHS4
bseg~kunnr IN patient AND "SHS4
bseg~cpudt IN budat_in AND
bseg~blart IN i_paydoctype_rg AND
bkpf~stblg = space AND
bkpf~bstat = space.
SELECT bkpf~bukrs bseg~zuonr bseg~kunnr bkpf~belnr
bkpf~gjahr bseg~xblnr bkpf~budat bkpf~blart
bseg~dmbtr bseg~hkont bseg~shkzg
bseg~cpudt "ECC1 insert
FROM ( bsad AS bseg INNER JOIN
bkpf AS bkpf ON
bseg~bukrs = bkpf~bukrs AND
bseg~belnr = bkpf~belnr AND
bseg~gjahr = bkpf~gjahr )
APPENDING CORRESPONDING FIELDS OF TABLE i_paydoc
WHERE bseg~bukrs = bukrs_in AND
bseg~zuonr = wa_zuonr AND
* bseg~kunnr = wa_ecase-kunnr and "SHS4
bseg~kunnr IN patient AND "SHS4
bseg~cpudt IN budat_in AND
bseg~blart IN i_paydoctype_rg AND
bkpf~stblg = space AND
bkpf~bstat = space.
ENDLOOP.
2014 Oct 14 10:11 AM
Hi,
For select statements, Use them outside loop. Use primary/secondary indexes.
For FMs, use parallel processing.
Thanks,
Anil
2014 Oct 14 9:56 AM
2014 Oct 14 9:56 AM
Hi,
did you have tried to make an SQL trace and look for the Analyse of the SELECT statement ? We can't imagine witch Index has been created on your system. It's an analyse only valid for your system.
regards
Fred
2014 Oct 14 10:11 AM
Hi,
For select statements, Use them outside loop. Use primary/secondary indexes.
For FMs, use parallel processing.
Thanks,
Anil