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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.04.2021, 09:21   #1  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
839 / 581 (21) +++++++
Регистрация: 14.10.2004
DFO365 зависает при смене склада в закупке
Привет!
DFO365 зависает при смене склада в закупке, в которой более 500 строк.
Вот такой код работает несколько часов для 500 строк.
X++:
          purchTable.InventLocationId = 'XXXXXX';
          //purchTable.modifiedField(fieldNum(PurchTable, InventLocationId));
          purchTable.InventSiteId = InventLocation::find(purchTable.InventLocationId).InventSiteId;
          //purchTable.modifiedField(fieldNum(PurchTable, InventSiteId));

            PurchTable2LineUpdatePrompt purchTable2LineUpdatePrompt = PurchTable2LineUpdatePrompt::newFromPurchTable(purchTable);
            
            purchTable.update();
            
            PurchTable2LineUpdate   purchTable2LineUpdate;

            purchTable2LineUpdate = PurchTable2LineUpdate::construct(purchTable2LineUpdatePrompt);
            
            purchTable2LineUpdate.parmUpdatePricedisc(NoYes::Yes); //пробовал ставить NoYes::No, но эффекта не дало
            purchTable2LineUpdate.parmUpdatePriceDiscMode(PriceDiscUpdatePriceDisc::KeepManualSystem);
            
            purchTable2LineUpdate.parmCopyTaxGroupToMarkupTrans(DialogButton::No);
            purchTable2LineUpdate.update();
Вообще-то моя цель - только поменять склад в шапке и в строках закупки. Я попробовал сделать по-старинке через обновление InventDim в строках закупки, но тогда возникают косяки при утверждении закупки и разноске накладной.
Есть ли какой-то красивый способ поменять склад в шапке и строках закупки ?
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/

Последний раз редактировалось Ace of Database; 27.04.2021 в 09:24.
Старый 27.04.2021, 10:01   #2  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
839 / 581 (21) +++++++
Регистрация: 14.10.2004
Заработало
Удалось сделать вот так:
X++:
        purchTable.InventLocationId = 'XXXXXX';
        //purchTable.modifiedField(fieldNum(PurchTable, InventLocationId));
        purchTable.InventSiteId = InventLocation::find(purchTable.InventLocationId).InventSiteId;
        //purchTable.modifiedField(fieldNum(PurchTable, InventSiteId));

            purchTable.update();

            while select forupdate purchLine
                where
                    purchLine.PurchId == purchTable.PurchId
            exists join existInventDim
                where
                    existInventDim.inventDimId == purchLine.InventDimId
                &&  existInventDim.InventLocationId != purchTable.InventLocationId
            {
                inventDim = purchLine.inventDim();
                inventDim.InventLocationId  = purchTable.InventLocationId;
                inventDim.InventSiteId      = inventDim.inventLocation().InventSiteId;
                inventDim = InventDim::findOrCreate(inventDim);
                purchLine.InventDimId = inventDim.inventDimId;
                //purchLine.setInventDimId(inventDim.inventDimId);
                purchLine.update();
            }
После этого утверждение и разноска накладной работают. Вчера почему-то не работало
Теперь все отрабатывает за 10 минут, включая разноску накладной.
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/
Старый 27.04.2021, 10:12   #3  
VORP is offline
VORP
Участник
Аватар для VORP
 
144 / 92 (4) ++++
Регистрация: 26.05.2006
А в чём отличие от способа по старинке - что вы отключили связывание складской и фин аналитики сайт? В нём была проблема?
Старый 27.04.2021, 10:15   #4  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
839 / 581 (21) +++++++
Регистрация: 14.10.2004
Цитата:
Сообщение от VORP Посмотреть сообщение
А в чём отличие от способа по старинке - что вы отключили связывание складской и фин аналитики сайт? В нём была проблема?
Возможно. Я вчера до 3 часов ночи это гонял. А сегодня за 10 минут исправил. Лучше не трогать больше то, что работает
В этой моей задаче не надо пересчитывать цены. Только поменять склад. Я там в отладчике смотрел, какой-то ужас творится с налоговыми проводками по закупке, которая еще даже не утверждена. Возможно, она считает PurchTotals.
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/
Старый 27.04.2021, 14:23   #5  
Damn is offline
Damn
Участник
 
411 / 121 (5) +++++
Регистрация: 28.05.2003
Адрес: Москва
Цитата:
Сообщение от Ace of Database Посмотреть сообщение
Возможно, она считает PurchTotals.
В D365 тоже долго считается сумма закупки\заказа, в котором несколько сотен строк ?
__________________
Дмитрий
Старый 27.04.2021, 16:04   #6  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
839 / 581 (21) +++++++
Регистрация: 14.10.2004
Цитата:
Сообщение от Damn Посмотреть сообщение
В D365 тоже долго считается сумма закупки\заказа, в котором несколько сотен строк ?
Мне кажется, это особенность работы класса PurchTable2LineUpdate и класса AXPurchLine, который интенсивно что-то делает с налоговыми проводками. Как себя ведут закупки в других алгоритмах системы, я пока не смотрел. Я в основном по верхушкам прыгаю, не залезая в глубину. Если один способ не работает, то пробую другой. Не влезая в то, что под капотом. Сейчас уже занят другим делом, но возможно и придется вернуться к этому.

Через связку PurchTable2LineUpdate - AXPurchLine реально одна строка по 10 секунд обрабатывалась. Но не каждая, некоторые строки быстро проскакивают.
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/

Последний раз редактировалось Ace of Database; 27.04.2021 в 16:08.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Отмена закрытия склада Logger DAX: Программирование 2 29.03.2017 12:21
Закрытие склада и бухгалтерия. Skvorcal DAX: Прочие вопросы 45 17.01.2011 10:24
Сальдо на счете "Потребление по закупке (возврат)" ViV DAX: Функционал 7 17.09.2010 14:39
Denis Fedotenko: Себестоимость и закрытие склада Blog bot DAX: База знаний и проекты 44 29.03.2010 14:54
Бизнес-процессы склада в Аксапта Sirius DAX: Функционал 6 02.03.2004 18:52
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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