‎2008 Jun 10 2:41 PM
Hi Experts,
Can i use the below logic. Will be there any performance issue when i use this logic. Or else is there any other way to write this logic. Please confirm its urgent...
loop at it_ane assigning <fs_ane> .
CONCATENATE <fs_ane>-bukrs <fs_ane>-anln1 <fs_ane>-anln2 INTO v_objectid.
SELECT changenr
udate
FROM cdhdr
INTO TABLE x_cdhdr
WHERE objectid = v_objectid
AND udate IN s_budat.
IF x_cdhdr IS NOT INITIAL.
SELECT changenr
fname
value_new
FROM cdpos
INTO TABLE x_cdpos
FOR ALL ENTRIES IN x_cdhdr
WHERE changenr = x_cdhdr-changenr
AND fname = 'TXJCD'
AND tabname = 'ANLZ'.
ENDIF.
endloop.
Thanks & Regards,
Ramana
‎2008 Jun 10 2:47 PM
Access the CDHDR too using a FOR ALL ENTRIES clause, build an internal table for this. (x_objectid)
Add the keys OBJECTCLAS and OBJECTID from CDHDR when accessing CDPOS cluster table CDCLS. (Add theses fields to x_cdhdr)
may look like
LOOP AT it_ane ASSIGNING <fs_ane> .
CONCATENATE <fs_ane>-bukrs <fs_ane>-anln1 <fs_ane>-anln2
INTO v_objectid-id..
APPEND v_objectid TO x_objectid.
ENDLOOP.
CHECK NOT x_objectid IS INITIAL.
SELECT objectclas objectid changenr udate
FROM cdhdr INTO TABLE x_cdhdr
FOR ALL ENTRIES IN x_objectid
WHERE objectid = x_objectid-id
AND udate IN s_budat.
CHECK NOT x_cdhdr IS INITIAL.
SELECT changenr fname value_new
FROM cdpos
INTO TABLE x_cdpos
FOR ALL ENTRIES IN x_cdhdr
WHERE objectclase = x_cdhdr-objectclas
AND objectid = x_cdhdr-objectid
AND changenr = x_cdhdr-changenr
AND fname = 'TXJCD'
AND tabname = 'ANLZ'.Also, check with OBJECTCLASS = 'ANLA' to access CDHDR (call transaction SCDO)
Regards
‎2008 Jun 10 2:47 PM
Access the CDHDR too using a FOR ALL ENTRIES clause, build an internal table for this. (x_objectid)
Add the keys OBJECTCLAS and OBJECTID from CDHDR when accessing CDPOS cluster table CDCLS. (Add theses fields to x_cdhdr)
may look like
LOOP AT it_ane ASSIGNING <fs_ane> .
CONCATENATE <fs_ane>-bukrs <fs_ane>-anln1 <fs_ane>-anln2
INTO v_objectid-id..
APPEND v_objectid TO x_objectid.
ENDLOOP.
CHECK NOT x_objectid IS INITIAL.
SELECT objectclas objectid changenr udate
FROM cdhdr INTO TABLE x_cdhdr
FOR ALL ENTRIES IN x_objectid
WHERE objectid = x_objectid-id
AND udate IN s_budat.
CHECK NOT x_cdhdr IS INITIAL.
SELECT changenr fname value_new
FROM cdpos
INTO TABLE x_cdpos
FOR ALL ENTRIES IN x_cdhdr
WHERE objectclase = x_cdhdr-objectclas
AND objectid = x_cdhdr-objectid
AND changenr = x_cdhdr-changenr
AND fname = 'TXJCD'
AND tabname = 'ANLZ'.Also, check with OBJECTCLASS = 'ANLA' to access CDHDR (call transaction SCDO)
Regards
‎2008 Jun 10 3:06 PM
CHECK NOT x_objectid[] IS INITIAL.
CHECK NOT x_cdhdr[] IS INITIAL.
‎2008 Jun 10 2:49 PM
Hi.
Instead of writing the selects inside the loop. Create ab internal table which holds v_object id. and use that internal table using for all entries to fetch entries from CDHDR and Subsequently CDPOS.