ElviraSM написал(а):
Добрый день!
Отчет Z* (само описанный) . "Аналитические данные по балансовому счету" (на вывод: Обороты по кредиторам и дебиторам по заданному счету и по дате, сальдо на начало, б. счет Дебет, б. счет Кредит, Сальдо на конец в разрезе каждого кредитора и дебитора). Отчет по некоторым счетам где обороты много вылетает в дамп по time_out. Часть кода:
LOOP AT lt_acctit WHERE buzid = 'M'.
COMMIT WORK.
READ TABLE gt_ekbe INTO gs_ekbe WITH KEY belnr = lt_acctit-awref
gjahr = lt_acctit-aworg.
IF sy-subrc EQ 0.
lt_acctit-xref3 = gs_ekbe-xref3.
ENDIF.
MODIFY lt_acctit.
ENDLOOP.
После добавления COMMIT WORK внутри цикл, отчет выгружается но 2,5 часа. Что надо сделать чтобы цикл по быстрее обработался? Заранее спасибо за ответы!
Что-то вроде
Code:
FIELD-SYMBOLS: <fs_acc> LIKE LINE OF lt_acctit
,<fs_ekbe> LIKE LINE OF gt_ekbe
.
LOOP AT lt_acctit ASSIGNING <fs_acc> WHERE buzid = 'M'.
READ TABLE gt_ekbe ASSIGNING <fs_ekbe> WITH KEY belnr = <fs_acc>-awref
gjahr = <fs_acc>-aworg.
CHECK sy-subrc EQ 0.
<fs_acc>-xref3 = gs_ekbe-xref3.
ENDLOOP.
+ как написали уже, таблицы объявить SORTED/HASHED в зависимости от полей, по которым происходит поиск.