AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.04.2010, 14:20   #1  
Shannon is offline
Shannon
Участник
Аватар для Shannon
 
19 / 10 (1) +
Регистрация: 25.08.2004
Адрес: Kyiv
Странный код в 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  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Shannon Посмотреть сообщение
Это только мне кажется, что это не очень правильно
Это не только "не очень правильно". Это варварство какое-то. И абсолютно неправильно.

Цитата:
Сообщение от Shannon Посмотреть сообщение
X++:
           
                inventTable.CostPrice = costPrice;
1. В стандартном приложении ax4 у таблицы InventTable нет поля CostPrice
2. В стандартном приложении ax4 методы таблицы InventSum не записывают значение CostPricePcs, а только читают данные (причем только из InventSum и из таблицы моделей)

Скорее всего, у вас дико переписанная себестоимость.
И у вас еще будет масса поводов для удивления.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: Shannon (1).
Старый 12.04.2010, 14:45   #3  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Это ваш код, а не стандартный. В стандартне нет никакого inventTable.CostPrice и ничего левого в инвентСам.апдейт не апдейтится. Нет, это неправильно.

Upd. Опередили.
__________________
С уважением,
Олег.

Последний раз редактировалось oip; 12.04.2010 в 14:46. Причина: Опередили
За это сообщение автора поблагодарили: Shannon (1).
Старый 12.04.2010, 15:33   #4  
Shannon is offline
Shannon
Участник
Аватар для Shannon
 
19 / 10 (1) +
Регистрация: 25.08.2004
Адрес: Kyiv
Одна поправка — не «наш», а «их». Мне, похоже, посчастливилось разгребать «необратимые улучшения», внесенные людьми, для которых нет ничего святого.
Старый 12.04.2010, 15:36   #5  
Shannon is offline
Shannon
Участник
Аватар для Shannon
 
19 / 10 (1) +
Регистрация: 25.08.2004
Адрес: Kyiv
Цитата:
Сообщение от mazzy Посмотреть сообщение
Это не только "не очень правильно". Это варварство какое-то. И абсолютно неправильно.
Спасибо. К счастью, у клиента есть программисты, которые понимают по-русски, и которые знают, кто такой Маззи. Теперь мне проще будет объяснить, что я не «просто придираюсь»
Теги
ax4.0, inventsum, блокировка номенклатуры, блокировки, deadlock

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
InventSum Alexanderrrr DAX: Функционал 18 12.01.2010 07:43
Ошибка при разноске складских движений Starling DAX: Администрирование 9 12.10.2007 14:21
Странный код в базовом функционале PavelSR DAX: Программирование 6 23.04.2007 16:01
Странный программный код. Гуру, помогите! dirigente DAX: Программирование 5 15.01.2004 13:53
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:51.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.