12.04.2010, 14:20 | #1 |
Участник
|
Странный код в InventSum.update() и deadlocks
[Kernel version — AX 4.0.2503.1109, application version — 4.0.2503.828, MS SQL]
В изрядно измененном приложении возникли блокировки номенклатуры, я поотлаживал, и наткнулся в таблице InventSum метод с таким кодом: X++: ostPrice = postedQty ? postedValue / postedQty : 0; select firstonly forupdate inventTable where inventTable.ItemId == itemId; if (inventTable && costPrice) { inventTable.CostPrice = costPrice; inventTable.update(); } Этот метод вызывается из InventSum.update(). Это только мне кажется, что это не очень правильно — вызывать из такого часто вызываемого метода, как InventSum.update(), какие-то апдейты? Может это быть причиной блокировки? |
|
12.04.2010, 14:42 | #2 |
Участник
|
Это не только "не очень правильно". Это варварство какое-то. И абсолютно неправильно.
1. В стандартном приложении ax4 у таблицы InventTable нет поля CostPrice 2. В стандартном приложении ax4 методы таблицы InventSum не записывают значение CostPricePcs, а только читают данные (причем только из InventSum и из таблицы моделей) Скорее всего, у вас дико переписанная себестоимость. И у вас еще будет масса поводов для удивления. |
|
|
За это сообщение автора поблагодарили: Shannon (1). |
12.04.2010, 14:45 | #3 |
Axapta
|
Это ваш код, а не стандартный. В стандартне нет никакого inventTable.CostPrice и ничего левого в инвентСам.апдейт не апдейтится. Нет, это неправильно.
Upd. Опередили. Последний раз редактировалось oip; 12.04.2010 в 14:46. Причина: Опередили |
|
|
За это сообщение автора поблагодарили: Shannon (1). |
12.04.2010, 15:33 | #4 |
Участник
|
Одна поправка — не «наш», а «их». Мне, похоже, посчастливилось разгребать «необратимые улучшения», внесенные людьми, для которых нет ничего святого.
|
|
12.04.2010, 15:36 | #5 |
Участник
|
|
|
Теги |
ax4.0, inventsum, блокировка номенклатуры, блокировки, deadlock |
|
Похожие темы | ||||
Тема | Ответов | |||
InventSum | 18 | |||
Ошибка при разноске складских движений | 9 | |||
Странный код в базовом функционале | 6 | |||
Странный программный код. Гуру, помогите! | 5 |
|