Я дошёл до предела

Внезапно оказалось, что таблица блокировок не резиновая, и имеет свои переделы.

В моём случае обвал блокировок начался в районе 25 тысяч записей.

Как можно достичь таких огромных цифр?

Есть программа, которая делает массовое списание при помощи BAPI_GOODSMVT_CREATE.

При списании одной записи материала материала создаются четыре записи блокировки к таблицам  KSSKX, MARC, MBEW, MCH1. Поэтому, если делать массовое списание одним документом нескольких тысяч позиций, то вы упрётесь именно в потолок по блокировкам. После долгого ожидания выпадет системная ошибка при создании блокировок.

Понятное дело, что блокировки уйдут сразу после завершения операции; при этом можно дополнительно отметить, что параллельные операции только аккумулируют блокировки.

Второй момент: так как такой документ очень долго ворочается, то будет не очень неприятно, операция вылетит по таймауту или одна из позиций не пройдёт ввиду какой-нибудь глупой ошибки.

Вывод: При массовых операциях не пытайтесь сложить все яйца в одну корзину.

Если без заморочек, то старайтесь придерживайтесь правила: одна позиция рождает один документ; если много документов плодить нежелательно, то надо предусмотреть порционность (~ тысяча позиций). Наличие индикатора выполнения рекомендуется.

Опубликовано 29.12.2013 в 09:13 · Автор ivan · Ссылка
Рубрики: ABAP

Написать комментарий