Hi Shalini,
Take Ref below code and get get your requirement. Please let me know any clarifications.
In my case I am picking the max date(that is last movement date w.r.t material.plant combination movement type logic I am loading data from one dso to cube). Here last sale date of material is getting to know the fast or slow moving items or know the aging of the material w.r.t plant.
DATA: IT_SOURCE1 LIKE SOURCE_PACKAGE,
IT_SOURCE2 LIKE SOURCE_PACKAGE,
IT_SOURCE3 LIKE SOURCE_PACKAGE,
WA_SOURCE LIKE LINE OF SOURCE_PACKAGE.
FIELD-SYMBOLS: <FS_SOURCE> LIKE LINE OF SOURCE_PACKAGE.
IT_SOURCE1 = SOURCE_PACKAGE[].
sort IT_SOURCE1 descending by PLANT MATERIAL PSTNG_DATE MOVETYPE.
delete adjacent duplicates from IT_SOURCE1 comparing PLANT MATERIAL
PSTNG_DATE MOVETYPE.
IT_SOURCE2 = IT_SOURCE1.
delete adjacent duplicates from IT_SOURCE2 comparing PLANT MATERIAL.
* BREAK-POINT.
loop at IT_SOURCE2 assigning <FS_SOURCE>.
clear WA_SOURCE.
if <FS_SOURCE>-MOVETYPE = '602' or <FS_SOURCE>-MOVETYPE = '601'.
append <FS_SOURCE> to IT_SOURCE3.
else.
loop at IT_SOURCE1 into WA_SOURCE where plant =
<FS_SOURCE>-plant
and material = <FS_SOURCE>-material and ( MOVETYPE = '602'
or MOVETYPE = '601').
append WA_SOURCE to IT_SOURCE3.
exit.
endloop.
if WA_SOURCE is initial.
loop at IT_SOURCE1 into WA_SOURCE where plant =
<FS_SOURCE>-plant
and material = <FS_SOURCE>-material and ( MOVETYPE = '262'
or MOVETYPE = '261' or MOVETYPE = '201' or MOVETYPE = '202'
).
append WA_SOURCE to IT_SOURCE3.
exit.
endloop.
endif.
if WA_SOURCE is initial.
loop at IT_SOURCE1 into WA_SOURCE where plant =
<FS_SOURCE>-plant
and material = <FS_SOURCE>-material and ( MOVETYPE = '132'
or MOVETYPE = '131' or MOVETYPE = '102' or MOVETYPE = '101'
or MOVETYPE = '701' or MOVETYPE = '671' or MOVETYPE = '653'
or MOVETYPE = '502' or MOVETYPE = '501' ).
append WA_SOURCE to IT_SOURCE3.
exit.
endloop.
endif.
* if WA_SOURCE is initial.
* loop at IT_SOURCE1 into WA_SOURCE where plant =
* <FS_SOURCE>-plant
* and material = <FS_SOURCE>-material and ( MOVETYPE = '562'
*or MOVETYPE = '561' or MOVETYPE = '502' or MOVETYPE = '501' ).
* append WA_SOURCE to IT_SOURCE3.
* exit.
* endloop.
* endif.
if WA_SOURCE is initial.
loop at IT_SOURCE1 into WA_SOURCE where plant =
<FS_SOURCE>-plant
and material = <FS_SOURCE>-material and ( MOVETYPE = '952'
or MOVETYPE = '951' or MOVETYPE = '552' or MOVETYPE = '551'
or MOVETYPE = '556' or MOVETYPE = '555' or MOVETYPE = '956'
or MOVETYPE = '955' or MOVETYPE = '561'
or MOVETYPE = '641' or MOVETYPE = '651' or MOVETYPE = '459'
or MOVETYPE = '453' or MOVETYPE = '309' or MOVETYPE = '321'
or MOVETYPE = '343' or MOVETYPE = '642'
or MOVETYPE = '344' or MOVETYPE = '460' or MOVETYPE = '311'
or MOVETYPE = '702' or MOVETYPE = '313' or MOVETYPE = '911'
or MOVETYPE = '122' or MOVETYPE = '301'
or MOVETYPE = '350' or MOVETYPE = '541' or MOVETYPE = '542'
or MOVETYPE = '351').
append WA_SOURCE to IT_SOURCE3.
exit.
endloop.
endif.
endif.
endloop.
SOURCE_PACKAGE[] = IT_SOURCE3.
Thanks & Regards,
Srinu.Rapolu