Bapi ardından tablo güncelleme
Bapi çalıştırıldıktan sonra kayıdın veri tabanı tablosuna aktarılması biraz zaman alabilir.
Bapinin ardından standart tabloda güncelleme yapmak istiyorsanız kayıdın tabloya aktarılmasını beklemelisiniz. Ne kadar süreceği elbette belli olmaz, aşağıdaki kod bapinin ardından arka planda çalışacak şekilde çağırılır ve yaklaşık 20 sn içinde tabloyu günceller.
Tablo tipi : ZMM_T_PONUMBER ( ZMM_S_PONUMBER )
Structure : ZMM_S_PONUMBER
Eleman : EXPPURCHASEORDER Types EBELN
call function `ZMM_EKPO_UMSOK_UPDATE`
IN BACKGROUND TASK
AS SEPARATE UNIT
DESTINATION `NONE`
EXPORTING
IT_PONUMBERS = lt_po[].
COMMIT WORK."Background task commit görmeden çalışmaz
function zmm_ekpo_umsok_update.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(IT_PONUMBERS) TYPE ZMM_T_PONUMBER OPTIONAL
*"----------------------------------------------------------------------
data: lt_po type zmm_t_ponumber.
data: ls_po type zmm_s_ponumber.
data: lv_count type int4.
data: lv_next_po type c.
data: ls_ekko type ekko.
data: ls_ekpo type ekpo.
data: lt_ekpo type STANDARD TABLE OF ekpo.
check it_ponumbers[] is not initial.
lt_po[] = it_ponumbers[].
delete adjacent duplicates from lt_po comparing all fields.
loop at lt_po into ls_po.
lv_count = 0.
do.
if lv_count ne 0.
wait up to 2 seconds.
endif.
if lv_count >= 10.
exit.
endif.
lv_count = lv_count + 1.
clear ls_ekko.
select single * into ls_ekko from ekko where ebeln = ls_po-exppurchaseorder.
CHECK sy-subrc eq 0.
if ls_ekko-bsart ne `ZMDT`.
exit.
endif.
refresh lt_ekpo.
SELECT * into TABLE lt_ekpo from ekpo where ebeln = ls_po-exppurchaseorder
and sobkz = `E`
and ( KNTTP = `C` )
and umsok = space.
if lt_ekpo[] is INITIAL.
exit.
endif.
CLEAR lv_next_po.
loop at lt_ekpo into ls_ekpo.
update ekpo
set umsok = ls_ekpo-sobkz
where ebeln = ls_ekpo-ebeln
and ebelp = ls_ekpo-ebelp.
if sy-subrc ne 0.
Exit.
else.
commit WORK and wait.
lv_next_po = `X`.
endif.
ENDLOOP.
if lv_next_po = `X`.
exit.
endif.
enddo.
endloop.
endfunction.