2009 Mar 31 6:16 AM
Please help me optimise this piece of code as it runs into a time out dump
SELECT client relid srtfd srtf2 histo aedtm uname pgmid versn
clustr
FROM pcl4
INTO (pcl4-client,pcl4-relid,pcl4-srtfd,pcl4-srtf2, pcl4-histo,
pcl4-aedtm,pcl4-uname,pcl4-pgmid,pcl4-versn,pcl4-clustr)
WHERE relid EQ relid
AND srtfd LIKE ra_pernrange-low "Represents PCL4 key ra_pernrrange-low EQ 'A<pernr>%'
AND srtf2 EQ '00'
AND aedtm IN so_datum
AND uname IN so_uname.
end of new select
CHECK pcl4-srtfd IN srtfd_select_range_tab.
"GG470
PERFORM add_pcl4 USING '000000' CHANGING dummy.
ENDSELECT.
It is similar to d code used in standard report RPUAUd00
2009 Mar 31 6:24 AM
use Perform outside the Select statement as It takes long time Depending upon the records...
2009 Mar 31 6:27 AM
But the perform statement needs to move the contents of pcl4 into lcl4 can u tell me how 2 do it!??
2009 Mar 31 6:38 AM
Hi,
SELECT.. ENDSELECT often result into serious performance issues. So according to me change your as specified below:
Declare an internal with fields of pcl4 table which are used in select query.
SELECT client relid srtfd srtf2 histo aedtm uname pgmid versn
clustr
FROM pcl4
INTO TABLE lt_pcl4
WHERE relid EQ relid
AND srtfd IN srtfd_select_range_tab " this also needs to be changed
AND srtf2 EQ '00'
AND aedtm IN so_datum
AND uname IN so_uname.
IF sy-subrc EQ 0.
LOOP AT lt_pcl4.
PERFORM add_pcl4 USING '000000' CHANGING dummy.
ENDLOOP.
ENDIF.
This will enhance the performance.
Hope this solves your problem.
Regards,
Brajvir
2009 Apr 01 4:29 AM
I have implemented the suggested solution however in the dev system it doesnt take time but when i migrate my code to test system the code hangs and gives a run time error ... is der any function dat can help me out to read from cluster pcl4... plz help!
2009 Apr 01 7:13 AM
Hi,
To further optimise performance of PCL4 cluster table, fetch data using IMPORT .... FROM DATABASE statment. For IMPORT statment background refer help
[http://help.sap.com/saphelp_46c/helpdata/en/fc/eb3bf8358411d1829f0000e829fbfe/frameset.htm]
Now for reference on HR cluster table:
Cluster Definition
- The data definition of a work area for PCLn is specified in separate programs which comply with fixed naming conventions.
- They are defined as INCLUDE programs (RPCnxxy0). The following naming convention applies:
n = 1 or 2 (PCL1 or PCL2)
xx = Relation ID (e.g. RX)
y = 0 for international clusters or country indicator (T500L) for different country cluster
Code has to modified in the manner specified below:
TABLES: PCLn.
INCLUDE RPCnxxy0. "Cluster definition
* Fill cluster Key
xy-key = <value>.
* Import record
IMPORT table1 FROM DATABASE PCLn(xy) ID xy-KEY.
IF SY-SUBRC EQ 0.
READ TABLE table1 INTO wa WITH KEY conditions here
DO further manipulation.
ENDIF.
Inculde RPC4PR00 can be called in the program.
Hope this solves your problem.
Regards,
Brajvir