Есть такая проблема, решил именно принудительным созданием записи оценки в MBEW (виртуальное движение материала и сторно) в момент прихода запаса. Создается автоматически следующим образом:
1. Сделал отдельный вид движения материала Z61 копированием из 561 и соответствующий вид движения сторно. Настроил для него отдельные счета, для контроля в случае каких либо проблем, а так же принудительно отключил ведение серийных номеров для этого вида движения, так как виртуальные серийники гонять смысла нет.
2. Сделал программу, в которую передаю код материала и завод/склад. Программа выполняет поступление без заказа на поставку видом движения Z61 и тут же выполняет сторно этого движения Z62 видом. Таким образом создается запись оценки в MBEW, опять же если автоматика сбойнула, то пользователь может запустить эту программу в ручном режиме или сделать сторно руками, если сбой был на втором шаге. Программка лежит тут: You are not allowed to view links.
Register or
Login3. Затем создал событие Y_POSTMM_EVENT транзакция SM62 и там создаем пользовательское событие (системные лучше не трогать) пример создания на рисунке sm62.png.
4. Затем идем в планирование заданий SM36 и там планируем фоновое задание, которое должно стартовать по созданному событию Y_POSTMM_EVENT, кстати не забываем ставить там галку "Выполнять задание периодически". Пример планирования задания на рисунке sm36-1.png (задание по событию), sm36-2.png шаг задания где нужно указать имя программы и если надо вариант выполнения и наконец как выглядит задание перед сохранением.
5. В экзите MB_CF001 - Customer function exit for update of material, вставил анализ операции, что это документ поступления запаса на склад и если это так, тогда делаю следующий вызов:
DATA: event_id LIKE tbtco-eventid,
eventparm LIKE tbtco-eventparm.
* Строка параметра с номером проведенного документа
CONCATENATE xmkpf-mblnr xmkpf-mjahr INTO eventparm.
CALL FUNCTION 'BP_EVENT_RAISE'
EXPORTING
eventid = 'Y_POSTMM_EVENT'
eventparm = eventparm
EXCEPTIONS
bad_eventid = 1
eventid_does_not_exist = 2
eventid_missing = 3
raise_failed = 4
OTHERS = 5.
Ну и все после этого в среднем от 1 до 5 секунд запись оценки в MBEW уже создана.