Code:
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" REFERENCE(INT_MATNR)
*" REFERENCE(INT_WERKS) OPTIONAL
*" REFERENCE(INT_LGORT) OPTIONAL
*" REFERENCE(INT_DATE)
*" TABLES
*" REZULT
*"----------------------------------------------------------------------
data: begin of itog occurs 0,
werks like mseg-werks,
lgort like mseg-lgort,
matnr like mseg-matnr,
maktx like makt-maktx,
menge like mseg-menge,
end of itog.
data:
hd like bapi2017_gm_head_02 occurs 0 with header line,
it like bapi2017_gm_item_show occurs 0 with header line,
ret like bapiret2 occurs 0 with header line,
tt156 like t156 occurs 0 with header line,
ostat like mseg-menge.
ranges: dp for mara-ersda.
ranges:
matnr for mara-matnr ,
werks for mseg-werks ,
lgort for mseg-lgort.
clear: hd, it, ret, dp, tt156, ostat.
refresh: hd, it, ret, dp, tt156.
clear: matnr , werks , lgort.
refresh: matnr , werks , lgort.
matnr-sign = 'I'.
matnr-option = 'EQ'.
matnr-low = int_matnr.
append matnr.
if not int_werks is initial.
werks-sign = 'I'.
werks-option = 'EQ'.
werks-low = int_werks.
append werks.
endif.
if not int_lgort is initial.
lgort-sign = 'I'.
lgort-option = 'EQ'.
lgort-low = int_lgort.
append lgort.
endif.
select * from t156 appending table tt156.
dp-sign = 'I'.
dp-option = 'LT'.
dp-low = int_date.
append dp.
call function 'BAPI_GOODSMVT_GETITEMS'
tables
material_ra = matnr
plant_ra = werks
stge_loc_ra = lgort
pstng_date_ra = dp
goodsmvt_header = hd
goodsmvt_items = it
return = ret.
loop at it.
clear: tt156, ostat.
read table tt156 with key bwart = it-move_type.
case tt156-shkzg.
when 'S'.
* if it-x_auto_cre = 'X'.
* subtract it-entry_qnt from ostat.
* else.
add it-entry_qnt to ostat.
* endif.
when 'H'.
if it-x_auto_cre = 'X'.
add it-entry_qnt to ostat.
else.
subtract it-entry_qnt from ostat.
endif.
endcase.
clear: itog.
itog-werks = it-plant.
itog-lgort = it-stge_loc.
itog-matnr = it-material.
itog-menge = ostat.
collect itog.
endloop.
delete itog where menge = 0.
loop at itog.
select single maktx
into itog-maktx
from makt
where matnr = itog-matnr.
modify itog.
endloop.
sort itog by werks lgort maktx.
loop at itog.
append itog to rezult.
endloop.
Попробуй вот так, тогда сможешь получать на дату в реальном времени. И разбрасывать по складам и с учётом партии и т.д.