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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.12.2020, 03:00   #1  
Dozer is offline
Dozer
Участник
AxAssist
Соотечественники
 
107 / 24 (1) +++
Регистрация: 16.11.2004
Адрес: г. Калгари, Канада
Програмное изменение количества в строке заказа
Добрый день,

Я сегодня внезапно столкнулся с проблемой, что когда я через код изменяю значениe PurchLine.PurchQty, и сохраняю строку значение в заказе изменяется без проблем, но вот значение складской проводки не обновляется, и тестеры сильно переживают.

Пробовал вызывать дополнительные функции на таблице перед апдейтом (как например modifiedField и тп., пробовал разное значение параметра dropInvent при вызове апдейта, но не выходит.

У кого-нибудь есть пример правильного обновления количества через код?
Что я упускаю?
__________________
С уважением, Dozer
Старый 01.12.2020, 04:50   #2  
Pandasama is offline
Pandasama
Участник
 
457 / 137 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
Поставьте точку останова где-нибудь в InventTrans.update(), InventTrans.insert()
Обновите руками, посмотрите как вы туда, в обновление складских проводок, попадаете и почему не попадаете при использовании вашего кода.

Или поищите в стандарте какой-нибудь вариант изменения количества через код - какой-нибудь импорт, копирование строк, создание заказа на основании других документов и т.д.
Старый 01.12.2020, 08:26   #3  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Все верно.
На проводки влияет не PurchQty, а RemainInventPhysical, поэтому нужно корректно менять и его. Более того, есть еще несколько полей с количеством и при изменении PurchQty должны быть изменено и другие поля.
Например, можно посмотреть в методе PurchLine.createLine как инициализируются поля QtyOrdered и остальные.
За это сообщение автора поблагодарили: Pandasama (1).
Старый 01.12.2020, 16:32   #4  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Dozer Посмотреть сообщение
У кого-нибудь есть пример правильного обновления количества через код?
Что я упускаю?
Действия на форме упускаете. В методах источника данных формы

\Forms\PurchTable\Data Sources\PurchLine\Fields\PurchQty\Methods\modified

super() - это как раз табличный метод modifiedField(), но смотреть надо, что там дальше. После super(), что еще кроме собственно PurchQty надо изменить

Там, конечно, часть действий по обновлению картинки на форме, но в том числе и методы по обновлению данных запускаются
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 01.12.2020, 18:02   #5  
Dozer is offline
Dozer
Участник
AxAssist
Соотечественники
 
107 / 24 (1) +++
Регистрация: 16.11.2004
Адрес: г. Калгари, Канада
Повозился ещё немного и вроде как вот такой финальный код работает правильно:

X++:
purchLine.PurchQty = newQty;
PurchLine::modifyPurchQty(purchLine, purchLine.inventDim(), false);
InventMovement::bufferSetRemainQty(purchLine);

purchLine.update();
Всем спасибо.
__________________
С уважением, Dozer
Старый 01.12.2020, 18:59   #6  
Vals is offline
Vals
Аманд
Аватар для Vals
Компания АМАНД
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2009
 
1,766 / 507 (20) +++++++
Регистрация: 27.02.2002
Адрес: Pass partout, Москва
Цитата:
Сообщение от Dozer Посмотреть сообщение
Добрый день,

Я сегодня внезапно столкнулся с проблемой, что когда я через код изменяю значениe PurchLine.PurchQty, и сохраняю строку значение в заказе изменяется без проблем, но вот значение складской проводки не обновляется, и тестеры сильно переживают.

Пробовал вызывать дополнительные функции на таблице перед апдейтом (как например modifiedField и тп., пробовал разное значение параметра dropInvent при вызове апдейта, но не выходит.

У кого-нибудь есть пример правильного обновления количества через код?
Что я упускаю?

Если не секрет, что за модифа?
Старый 02.12.2020, 00:59   #7  
Dozer is offline
Dozer
Участник
AxAssist
Соотечественники
 
107 / 24 (1) +++
Регистрация: 16.11.2004
Адрес: г. Калгари, Канада
Клиент заказал кастомную форму для быстрого изменения количеств в строках заказа по вариантам продукта.
В деталях долго расписывать, проект очень замороченый.
__________________
С уважением, Dozer
За это сообщение автора поблагодарили: Vals (1).
Теги
d365 for operations, purchline, x++

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Програмное изменение количества в строке продажи Dozer DAX: Программирование 1 21.08.2012 23:10
Изменения остатков в строке заказа на перемещение plumbum DAX: Программирование 0 22.05.2012 12:39
Обнуление Цены при изменении Суммы в строке Заказа на покупку Arseniy_F DAX: Функционал 8 05.04.2012 16:38
Цены в строке заказа меняются при изменении шапки заказа s.alex DAX: Функционал 8 14.04.2009 11:27
Как программно изменить к-во в строке заказа в форме SalesTable BorDark DAX: Программирование 2 13.01.2005 17:02
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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