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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.09.2008, 10:02   #1  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Я-то перенесу, но вот такое "простое" решение что-то у меня вызывает сомнения...
В производственном модуле не специалист, поэтому правильность прокомментировать не могу. Хотя охотно Вам верю, что ускорения вы добились
__________________
Андрей.
Старый 11.09.2008, 11:17   #2  
evv is offline
evv
Участник
 
18 / 10 (1) +
Регистрация: 01.08.2003
Адрес: Санкт-Петербург
Цитата:
Сообщение от Dron AKA andy Посмотреть сообщение
Я-то перенесу, но вот такое "простое" решение что-то у меня вызывает сомнения...
В производственном модуле не специалист, поэтому правильность прокомментировать не могу. Хотя охотно Вам верю, что ускорения вы добились
Жизнь покажет, где мы ошибались Просто насколько мне известно, себестоимость считается для всего заказа приего закрытии в любом случае, так что вроде мгновенные расчеты не нужны. Зато клиент может работать и радоваться. Во всяком случае пока Кроме того, вопрос о необходимости таких расчетов уже обсуждается с ключевыми пользователями клиента, так что проблема, если она есть, будет известна не слишком поздно.
Старый 11.09.2008, 12:33   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Dron AKA andy Посмотреть сообщение
Я-то перенесу, но вот такое "простое" решение что-то у меня вызывает сомнения...
У меня тоже.
Думаю, что надо дальше искать и анализировать тяжелые запросы.

Внутри есть
ProdCalcTrans::updateRealCalcCostBreakdown(prodCalcTrans, _prodBOM, inventItemPrice);

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

Отключать функционал не есть гуд. Тем более комментированием.
__________________
полезное на axForum, github, vk, coub.
Старый 11.09.2008, 12:47   #4  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от mazzy Посмотреть сообщение
Думаю, что надо дальше искать и анализировать тяжелые запросы
Уверен?

\Data Dictionary\Tables\ProdBOM\Methods\calcCostAmount

X++:
container calcRealCostAmount()
{
    InventTrans             inventTrans;
    InventDimParm           inventDimParmFinancial;
    InventDimParm           inventDimParmActive;
    InventDimGroupId        dimGroupId;
    InventQty               qty = 0;
    CostAmount              value = 0;
    boolean                 first = true;
    ;

    while select inventTrans                   // !!!
        index hint TransIdIdx
        where inventTrans.InventTransId       == this.InventTransId &&
              inventTrans.ItemId              == this.ItemId        &&
              inventTrans.StatusIssue         == StatusIssue::Deducted  &&
              inventTrans.ValueOpen           == InventTransOpen::Yes   &&
              inventTrans.PackingSlipReturned == NoYes::No
        {

            if (first)
            {
                dimGroupId  = InventTable::find(inventTrans.ItemId).DimGroupId;
                inventDimParmFinancial.initFinancialInvent(dimGroupId);
                inventDimParmActive.initDimActive(dimGroupId);
                first = false;
            }

            qty   += inventTrans.Qty;
            value += inventTrans.estimatedCostValue(inventDimParmFinancial,inventDimParmActive);   /// !!!
        }

    qty = abs(qty);
    value = abs(value);

    return [qty,value];
}
и как этому не тормозить при тысячах отборочных накладных по производственному заказу?
__________________
-ТСЯ или -ТЬСЯ ?
Старый 11.09.2008, 12:59   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Vadik Посмотреть сообщение
Уверен?
Уверен, что не комментировать вызов целого метода, а работать с конкретными запросами. Например, с тем, что ты привел.

самое тяжелое в указанном тобой методе - получить сумму ожидаемых себестоимостей. для каждого вызова в свою очередь вызывается
X++:
[qty,value] = InventTrans::calcMarkedCostValue(this.InventRefTransId,this.ItemId,this.InventDimId,this.inventTable().inventModelGroup().InclPhysicalValueInCost,this.InventTransId);
там такие же нелегкие запросы.
В результате имеем кучу вложенных достаточно тяжелых запросов.

Вот с этим и надо разбираться, а не "Просто закомментировав вызов данного расчета"
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: evv (1).
Старый 12.09.2008, 11:35   #6  
evv is offline
evv
Участник
 
18 / 10 (1) +
Регистрация: 01.08.2003
Адрес: Санкт-Петербург
Цитата:
Сообщение от mazzy Посмотреть сообщение
Уверен, что не комментировать вызов целого метода, а работать с конкретными запросами. Например, с тем, что ты привел.

самое тяжелое в указанном тобой методе - получить сумму ожидаемых себестоимостей. для каждого вызова в свою очередь вызывается
X++:
[qty,value] = InventTrans::calcMarkedCostValue(this.InventRefTransId,this.ItemId,this.InventDimId,this.inventTable().inventModelGroup().InclPhysicalValueInCost,this.InventTransId);
там такие же нелегкие запросы.
В результате имеем кучу вложенных достаточно тяжелых запросов.

Вот с этим и надо разбираться, а не "Просто закомментировав вызов данного расчета"
Да, я тоже считаю что надо дойти до конца и вмешательство должно быть хирургически точным. Просто сейчас есть возможность это сделать в спокойном режиме, когда заказчик работает как обычно и доволен всем. Просто когда у него шел простой производства и реальные финансовые убытки, решение было необходимо как можно быстрее.
Теги
ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка при разноске журнала клиентских платежей Hornet DAX: Функционал 5 23.06.2005 16:13
Ошибка при разноске журнала инвентаризации ATimTim DAX: Функционал 3 22.11.2004 17:27
Ошибка при разноске журнала переноса ATimTim DAX: Функционал 5 01.09.2004 15:24
Ошибка при проверке и разноске строк журнала ОС (версия 3.0, сервиспак 2) waitingforsharan DAX: Функционал 3 26.02.2004 01:15
Падение производительности функции renat DAX: Программирование 6 14.04.2003 14:52

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:44.