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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.09.2008, 12:47   #1  
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   #2  
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   #3  
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, время: 09:17.