|
22.10.2018, 20:02 | #1 |
Участник
|
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); } Да, спасибо, в последней версии всё стало работать еще тормознее за счет того, что каждый чих пишется в EventLog, и по нему можно найти проблемное место. Но толку-то? Как вот надо извратиться, чтобы при запрете оверлеинга, одними extension'ами отрубить этот холостой пересчет налогов на каждой строке? Чтоб служба медом не казалась, PurchLine.distributionUpdateNeeded() сделан закрытым (private), так что свой пост-обработчик туда не повесишь. Последний раз редактировалось gl00mie; 22.10.2018 в 20:08. |
|
|
За это сообщение автора поблагодарили: fed (3), raz (5), sukhanchik (4). |
23.10.2018, 08:58 | #2 |
Участник
|
Цитата:
Сообщение от gl00mie
PurchLine.update() в D365FO стал просто великолепен: мало того, что метод раздулся до 370 строк (что, PurchLineType.update()? не, не слышали), так он еще и начал пересчитывать налоги по заказу на покупку - видать, какой-то костыль для отображения итогов по заказу в виде FormPart.
Скорее всего вызов необходим для корректного пересчета распределений, к тому же название метода как бы намекает, сам пересчет распределения идет ниже в том же методе, вызывается для всей покупки целиком, правда в последних версиях AX2012, ребята поняли или им кто-то подсказал, что бывают проблемы с производительностью. Поэтому они добавили флажок(purchline.SkipDistributionUpdate) для скипа пересчета распределения всей покупки при обновлении строки и его используют при некоторых массовых действиях со строками, а про InclTax возможно забыли, т.к. чек скорее всего не был активирован Я так понимаю вопрос больше риторический ? PurchTotals нельзя переопределить разве ?
__________________
Sergey Nefedov |
|
|
За это сообщение автора поблагодарили: gl00mie (3). |
13.11.2018, 13:02 | #3 |
Moderator
|
Кстати, у меня есть сильное подозрение, что замечательное новое логирование быстро съедает IOT Quote и Azure начинает зажимать дисковые операции. (Aka IOT Throttling.) Возможно из за этого микрософт и вынужден был перевести подписные VM на DS12 (где, как я понимаю, ограничения по IOT не такие жесткие).
|
|