AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.10.2018, 20:02   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
PurchLine.update() в D365FO стал просто великолепен: мало того, что метод раздулся до 370 строк (что, PurchLineType.update()? не, не слышали), так он еще и начал пересчитывать налоги по заказу на покупку - видать, какой-то костыль для отображения итогов по заказу в виде FormPart.
X++:
if (this.distributionUpdateNeeded(purchLineOrig))
{
    if (purchTable.InclTax &&
        (this.hasAmountChanged(purchLineOrig) || this.hasTaxChanged(purchLineOrig)))
    {
        PurchTotals::newPurchTable(purchTable).calc(false, false, true);
        PurchLine::logMeasure(instrumentation, classStr(PurchTotals), methodStr(PurchTotals, calc), stopWatch);
    }
Конечно, на тестовых данных с 10-ю строками всё прекрасно, а вот в реальных условиях, когда строк эдак под 600 и более, какая-нить отмена недопоставленного количества превращается в десятки минут ожидания, так еще и блокировки на PurchTableVersion вешаются, так что несколько заказов на покупку в параллель штатно не отменишь.
Цитата:
Сообщение от Blog bot Посмотреть сообщение
How much telemetry are we collecting? A lot, like, really a lot!
Да, спасибо, в последней версии всё стало работать еще тормознее за счет того, что каждый чих пишется в EventLog, и по нему можно найти проблемное место. Но толку-то? Как вот надо извратиться, чтобы при запрете оверлеинга, одними extension'ами отрубить этот холостой пересчет налогов на каждой строке? Чтоб служба медом не казалась, PurchLine.distributionUpdateNeeded() сделан закрытым (private), так что свой пост-обработчик туда не повесишь.

Последний раз редактировалось gl00mie; 22.10.2018 в 20:08.
За это сообщение автора поблагодарили: fed (3), raz (5), sukhanchik (4).
Старый 23.10.2018, 08:58   #2  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
365 / 542 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Цитата:
Сообщение от gl00mie Посмотреть сообщение
PurchLine.update() в D365FO стал просто великолепен: мало того, что метод раздулся до 370 строк (что, PurchLineType.update()? не, не слышали), так он еще и начал пересчитывать налоги по заказу на покупку - видать, какой-то костыль для отображения итогов по заказу в виде FormPart.
Этот успешный код появился еще в AX 2012, но там он живет в PurchLineType.update() (в котором, к слову, примерно 340 строк, совпадение ? или может они просто всю начинку из него вытянули в purchLine.update() ? ) и пока еще может быть легко изменен. Не думаю, что сделали для расчета итогов, для этого есть еще один вызов в другом классе , в том же методе update.

Скорее всего вызов необходим для корректного пересчета распределений, к тому же название метода как бы намекает, сам пересчет распределения идет ниже в том же методе, вызывается для всей покупки целиком, правда в последних версиях AX2012, ребята поняли или им кто-то подсказал, что бывают проблемы с производительностью. Поэтому они добавили флажок(purchline.SkipDistributionUpdate) для скипа пересчета распределения всей покупки при обновлении строки и его используют при некоторых массовых действиях со строками, а про InclTax возможно забыли, т.к. чек скорее всего не был активирован


Цитата:
Сообщение от gl00mie Посмотреть сообщение
Как вот надо извратиться, чтобы...
Я так понимаю вопрос больше риторический ? PurchTotals нельзя переопределить разве ?
__________________
Sergey Nefedov
За это сообщение автора поблагодарили: gl00mie (3).
Старый 13.11.2018, 13:02   #3  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,895 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Да, спасибо, в последней версии всё стало работать еще тормознее за счет того, что каждый чих пишется в EventLog, и по нему можно найти проблемное место.
Кстати, у меня есть сильное подозрение, что замечательное новое логирование быстро съедает IOT Quote и Azure начинает зажимать дисковые операции. (Aka IOT Throttling.) Возможно из за этого микрософт и вынужден был перевести подписные VM на DS12 (где, как я понимаю, ограничения по IOT не такие жесткие).
Теги
axapta, cil, d365fo, guid, rasset, uuid, uuidv7, баг

 


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

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

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