Pobieram wszystkich dostawców dla danej jednostki gospodarczej z tabeli LFB1. Tych rekordów jest ponad 15 tys. Następnie muszę każdy pojedyńczy rekord wrzucić w MF [BAPI_AP_ACC_GETOPENITEMS], ponieważ na podstawie danych zwracanych przez niego robię dalsze wyliczenia. Ogólnie chodzi o to że potrzebuję dostać niezapłacone faktury. Transakcja FBL1N zwraca niezapłacone faktury (robiąc to błyskawicznie) ale nie zwraca wszystkich danych których potrzebuję.
To co robię w poniższym kodzie zajmuje bardzo dużo czasu. Czy da się jakoś przyśpieszyć proces otrzymywania niezapłaconych faktur dla danej jednostki gospodarczej?
Kod: Zaznacz cały
SELECT lifnr
FROM lfb1
INTO CORRESPONDING FIELDS OF TABLE gt_lifnr
WHERE bukrs = pa_bukrs
AND lifnr IN so_lifnr.
LOOP AT gt_lifnr INTO DATA(ls_lifnr).
CALL FUNCTION 'BAPI_AP_ACC_GETOPENITEMS'
EXPORTING
companycode = pa_bukrs
vendor = ls_lifnr-lifnr
keydate = pa_datum
* NOTEDITEMS = ' '
* IMPORTING
* RETURN =
TABLES
lineitems = gt_bapi_temp.
MOVE-CORRESPONDING gt_bapi_temp TO gt_bapi KEEPING TARGET LINES.
ENDLOOP.