Start routine code between source and target dso.
**********************************************************************
TYPES: BEGIN OF S_SPRICE,
MATERIAL TYPE /BI0/OIMATERIAL,
PLANT TYPE /BI0/OIPLANT,
PRICE_STD TYPE /BI0/OIPRICE_STD,
END OF S_SPRICE.
DATA: IT_SPRICE TYPE STANDARD TABLE OF S_SPRICE,
WA_SPRICE TYPE S_SPRICE.
TYPES: BEGIN OF S_SPRICE_C,
MATERIAL TYPE /BI0/OIMATERIAL,
PLANT TYPE /BI0/OIPLANT,
PRICE_STD TYPE /BI0/OIPRICE_STD,
0created_on type /bi0/oicreatedon,
END OF S_SPRICE_C.
DATA: IT_SPRICE_c TYPE STANDARD TABLE OF S_SPRICE_c,
WA_SPRICE_c TYPE S_SPRICE_c.
SELECT MATERIAL PLANT PRICE_STD INTO TABLE IT_SPRICE
FROM Lookup-DSO
FOR ALL ENTRIES IN SOURCE_PACKAGE
WHERE MATERIAL = SOURCE_PACKAGE-MATERIAL
AND PLANT = SOURCE_PACKAGE-PLANT.
SORT IT_SPRICE BY MATERIAL PLANT.
SELECT material plant price_std MAX( createdon )
FROM source_dso
INTO table it_sprice_c
for entries all in Source_package
where material = source_package-material and
plant = source_package-plant
GROUP BY material plant.
sort it_sprice_c by material plant.
Loop at source_package assigning <sfs>
read table it_sprice_c into wa_sprice_c with key material = <sfs>-material
plant = <sfs>-plant createdon = <sfs>-createdon binary search.
if sy-subrc eq 0.
read table it_sprice_c into wa_sprice with key material = <sfs>-material
plant = <sfs>-plant binary search.
if sy-subrc = 0.
<sfs>-price_std = wa_sprice-price_std.
endif.
else.
<sfs>-price_std = 0.
endif.
endloop.
**********************************************************************
make sure you have semantic group (material,plant ) in DTP.
Regards,
Sandeep