Текущее время: Вс, авг 03 2025, 16:59

Часовой пояс: UTC + 3 часа


Правила форума


Вопросы по ППМ (MRP) - сюда.
Вопросы по классификации - сюда.
Вопросы по входящим поставкам - сюда.



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Не прошел FI-документ к документу сторно поступления материала
СообщениеДобавлено: Пн, фев 28 2011, 11:16 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Чт, май 19 2005, 12:34
Сообщения: 1941
Откуда: НК
Пол: Мужской
Всем привет.

Не прошел FI-документ к документу материала 102 ВДв, сторно поступления материала. Провожу заново - все ОК.

В SM13 пусто, дампа (ST22) нет. Куда еще смотреть? Хоть причину определить бы.

А то SAP-message с такой скудной информацией не хочу писать - сразу скажут, что у вас там куча всего в BAdI натыкано, все из-за этого, ничем помочь не можем.

Есть у кого-нибудь какие-то мысли? :)

_________________
Eritis sicut Deus, scientes bonum et malum...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не прошел FI-документ к документу сторно поступления материала
СообщениеДобавлено: Пн, фев 28 2011, 14:39 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Вт, май 17 2005, 13:35
Сообщения: 4871
Откуда: Москва
Пол: Мужской
Смотри, что написано в MB_DOCUMENT_BADI.
Там все апдейты должны запускаться в режиме in update task и не должно быть comit work.

_________________
Удача - результат нашего желания (© А. Нортон)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не прошел FI-документ к документу сторно поступления материала
СообщениеДобавлено: Пн, фев 28 2011, 14:45 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Вт, май 17 2005, 13:35
Сообщения: 4871
Откуда: Москва
Пол: Мужской
Ну и то же самое касается расширеничя MB_CF001 Updating of material document data upon posting
Обычно неконсистентности - следствие коряво написанного кода в этих двух местах.

_________________
Удача - результат нашего желания (© А. Нортон)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не прошел FI-документ к документу сторно поступления материала
СообщениеДобавлено: Чт, мар 03 2011, 08:38 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Чт, май 19 2005, 12:34
Сообщения: 1941
Откуда: НК
Пол: Мужской
И действительно. Плотно сел и разобрался.

Сначала надо читать ноты: 1284654 и 968812.
Потом разбираться с кодом.

У нас стоит там в ~BEFORE_UPDATE вызов BAPI_REQUISITION_CHANGE и после него BAPI_TRANSACTION_COMMIT.

Но дело не в нем (все ведь работает уже достаточно давно), а в том, что действительно, прав был LKU, криво написан код, и после коммита идет выдача сообщения об ошибке (если резервирование занято).

А в BEFORE_UPDATE ошибку выдавать нельзя, иначе дамп.
Однако это происходит (в результате очень редкого совпадения).

BADI находится в самом конце очереди обновления (SM13), но перед проводкой FI-документа.

Короче, все проводки док. материала проходят, потом выдается дамп пользователю, и проводка FI-документа уже не проходит.

ST22 был, просто ситуация была довольно давно и лог динамических ошибок очистился.

Вот и все. Оказывается, так просто :)

_________________
Eritis sicut Deus, scientes bonum et malum...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не прошел FI-документ к документу сторно поступления материала
СообщениеДобавлено: Чт, мар 03 2011, 08:56 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 10:34
Сообщения: 716
Откуда: Moscow
Пол: Мужской
не лучше ли все это а именно что находится в ~BEFORE_UPDATE завернуть в ФМ обновления и вызывать в UPDATE TASK . и если вызывать уже ошибку с UPDATE TASK будет сформировано нормальное экспресс сообщение об ошибке и соответственно не будет
SAA написал:
Короче, все проводки док. материала проходят, потом выдается дамп пользователю, и проводка FI-документа уже не проходит.

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Не прошел FI-документ к документу сторно поступления материала  Тема решена
СообщениеДобавлено: Пт, мар 04 2011, 08:54 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Чт, май 19 2005, 12:34
Сообщения: 1941
Откуда: НК
Пол: Мужской
Вообще говоря, не нужно никаких проверок в MB_DOCUMENT_BADI, нота 1315985: "Generally speaking, the BAdI MB_DOCUMENT_BADI is not designed to check the entries for a goods movement.".

Тот код (с выдачей сообщения) остался непонятно откуда, а так как ситуация возникала раз в полтора года, его никто и не трогал :)

Перенес кое-что в MB_CHECK_LINE_BADI, он запускается непосредственно перед проводкой, этого хватит, я думаю.

LKU, ghost - спасибо за обсуждение!

_________________
Eritis sicut Deus, scientes bonum et malum...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не прошел FI-документ к документу сторно поступления материала
СообщениеДобавлено: Пт, мар 04 2011, 10:53 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Вт, май 17 2005, 13:35
Сообщения: 4871
Откуда: Москва
Пол: Мужской
SAA, насчет вредности commit work в бади MB_DOCUMENT_BADI- это не я придумал, вот что в ее описании в спро


Цитата:
The methods differ according to the time at which they are called up:

The method MB_DOCUMENT_BEFORE_UPDATE is called up before the FI document is created. This means that it is called up even if the program is terminated by an error during the subsequent processing. The update of data in separate tables should always be contained in function modules that are called up with the addition 'in update task'. This ensures that all the data is updated consistently.
The method MB_DOCUMENT_UPDATE is not carried out until update. This means that all updates are carried out immediately in their own tables and do not have to be contained in 'update task' in function modules. For performance reasons, you should not re-read the tables or carry out any time-consuming routines at this point.
You should always call up MB_DOCUMENT_BEFORE_UPDATE before MB_DOCUMENT_UPDATE, particularly if time is a critical factor when posting the material documents. The method MB_DOCUMENT_UPDATE is processed after the FI document numbers are called. As a result, no other FI documents can be posted until this document is completely updated.

Even if the two methods are in the same class, you cannot access the same global fields, as the methods are called up at different times and are therefore carried out in another roll area.

From the business add-in display, you can go to coding examples for both methods by choosing Goto -> Example coding -> Display

Note

The enhancement does not transfer any data to the material document, that is, you cannot change material document data before it is updated.

If this business add-in is not set up properly, it may result in an inconsistency between the documents and the stocks and between the material documents and the accounting documents. Inconsistencies like these may be caused by the following elements in the business add-in:
COMMIT WORK
Remote function call (CALL FUNCTION ... DESTINATION)
Own updates in document tables or stock tables (for example, update in tables MBEW, MARD, MSEG)
The unlocking of data (for example, via DEQUEUE_ALL)
Before the two business add-ins are called up, data is already flagged for the UPDATE. If a COMMIT WORK or a Remote Function Call is transmitted in the enhancement, these are written in the database. If another error occurs after the business add-ins are processed, you cannot carry out a complete ROLL BACK, as the data up to the COMMIT or Remote Function Call has already been written in the database. This can result in an inconsistent status (for example, material document without accounting document), which can only be repaired with considerable cost and effort.

The business add-ins are not suitable for customer-specific updates in the stock tables, as updates like these destroy the standard stock update.

Unlocking the data (for example, via DEQUEUE_ALL) is also critical, as the data that is to be updated is no longer protected from updates from external


так что поосторожнее :)

_________________
Удача - результат нашего желания (© А. Нортон)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB