Sapforum.Biz
Инструменты => ABAP - Инструментальные средства => SMOD/CMOD - Расширения => Тема начата: alexey11 от Июль 06, 2011, 05:48:34 pm
-
Доброго времени суток.
Необходимо при проводке инвентаризационной разницы в транзакции MI07 в складских документах изменять значение поля МВП (mseg-PRCTR) в зависимости от БЕ и завода (для 1 БЕ настроены несколько заводов). (В бухгалтерских документах для этой цели создаются замещения).
Теоретически обновлять документ материала можно было бы в BADI MB_DOCUMENT_BADI , вызывая функциональный модуль в Update task'е, в котором собственно и реализуется само обновление поля. Но спокойно можно изменять только Z-поля.
А в нашем случае - стандартное поле таблицы MSEG , обновлять которое нельзя т.к неивестно, где потом вылезет.
Других подходящих baDi нет.
1) Искал BAPI для изменения документа материала, но таковых нет .
2) думал запускать через Batch-input транзакцию MB02, но там вообще нет поля МВП + для редактирования в позициях доступны лишь поля Получатель и Текст.
Что можете посоветовать?
-
Теоретически обновлять документ материала можно было бы в BADI MB_DOCUMENT_BADI , вызывая функциональный модуль в Update task'е, в котором собственно и реализуется само обновление поля. Но спокойно можно изменять только Z-поля.
Ну вот нельзя такого делать, МВЗ там не просто как код стоит, оно влияет на документ СО, который у вас там скорее всего порождается в момент проводки разниц, а следовательно менять в апдейт-таск этот код уже поздно, документ то СО уже сформирован и проведен.
А в нашем случае - стандартное поле таблицы MSEG , обновлять которое нельзя т.к неивестно, где потом вылезет.
Ну ничего не вылезет, как написал выше, просто ваше изменение никак не отразится в модуле СО, а вам то как раз надо чтобы оно на СО влияло, а не само по себе в документе ММ фигурировало.
1) Искал BAPI для изменения документа материала, но таковых нет .
Ну бади то есть, но МВЗ там менять бесполезно.
2) думал запускать через Batch-input транзакцию MB02, но там вообще нет поля МВП + для редактирования в позициях доступны лишь поля Получатель и Текст.
Ну да изменять данные бесполезно, нужно искать как это делать в момент проводки...
Что можете посоветовать?
Ну искать бади, где можно изменить элементы контировки в момент проводки документа материала. Я находил такую точку при проводке документа поступления к заказу ММ, возможно оно же работает и при проводке разниц, в общем на днях найду эту точку и проверю.
-
Ну вот нельзя такого делать, МВЗ там не просто как код стоит, оно влияет на документ СО, который у вас там скорее всего порождается в момент проводки разниц, а следовательно менять в апдейт-таск этот код уже поздно, документ то СО уже сформирован и проведен.
В последующих CO/FI документов, которые создаются при проводке разниц, для заполнения МВП коллеги сделали настройки и замещения FI. Поэтому мне остается исправить неправильные данные как раз только в ММ документах.
Ну бади то есть, но МВЗ там менять бесполезно.
Искал и BADI/CMOD расширения и BAPI (функц.модули) .
Все те более-менее подходящие расширения, которые я находил не сохраняют изменения в таблице mseg на выходе.
Так вот была мысль в BADI-методе ZMM_MB_DOCUMENT_BADI-MB_DOCUMENT_UPDATE вызвать baPi типа BAPI_GOODSMVT_CREATE, только не *create, а *Change. Но такого нет .