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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.03.2006, 13:57   #1  
Zick-Zibn is offline
Zick-Zibn
Участник
 
78 / 38 (2) +++
Регистрация: 28.05.2004
Адрес: Moscow
:( Где изменяется статус заказа?
Подскажите пож-та где именно происходит изменение статуса Заказа. при его обработке. Пол дня ищу, но что то не успешно
Старый 29.03.2006, 14:04   #2  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
?? Не понял.
Тебя интересует, где непосредственно происходит update?

В SalesFormLetter есть чудесный метод postUpdate
X++:
            if (salesTable)
            {
                salesTable.updateDocumentStatus(this.documentStatus());
                salesTable.updateBackStatus();
                this.updateSalesType();
                this.createBackorderLines();
                salesTable.updateDeadline(salesParmUpdate.respiteDate);
            }
Обрати внимание на updateDocumentStatus.

С Уважением,
Георгий
Старый 29.03.2006, 14:05   #3  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Пол-дня... Друг, поставил бы брекпоинт на update в salesTable да и посмотрел бы

С Уважением,
Георгий
Старый 29.03.2006, 15:09   #4  
Zick-Zibn is offline
Zick-Zibn
Участник
 
78 / 38 (2) +++
Регистрация: 28.05.2004
Адрес: Moscow
Спасибо.
Старый 26.05.2006, 14:27   #5  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от George Nordic
Пол-дня... Друг, поставил бы брекпоинт на update в salesTable да и посмотрел бы

С Уважением,
Георгий
какой такой брекпоинт... ты точно скажи.. скока вешать...
Старый 26.05.2006, 14:50   #6  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Цитата:
Сообщение от simply2double
какой такой брекпоинт... ты точно скажи.. скока вешать...
200 граммов

Я ж говорю: Класс SalesFormLetter, метод postUpdate. Вызывает метод updateDocumentStatus(новый статус) таблицы SalesTable

Старый 26.05.2006, 15:07   #7  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от George Nordic

200 граммов
маловато... за пол дня можно было гораздо больше... да под хороший закусь
Старый 13.01.2011, 11:37   #8  
AvrDen is offline
AvrDen
Участник
 
134 / 26 (1) +++
Регистрация: 04.08.2005
Адрес: Усть-Каменогорск
Добрый день!
Очень интересует зачем менять статус заказа при обработке каждой строки заказа? Почему нельзя это сделать в конце один раз?
Старый 13.01.2011, 12:02   #9  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,510 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Цитата:
Сообщение от AvrDen Посмотреть сообщение
Добрый день!
Очень интересует зачем менять статус заказа при обработке каждой строки заказа? Почему нельзя это сделать в конце один раз?
А если заказ отгружается несколькими накладными? Как определить этот самый момент в конце?
__________________
С уважением,
Вячеслав
За это сообщение автора поблагодарили: AvrDen (1).
Старый 13.01.2011, 12:05   #10  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
886 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Потому что:
  • заказ может обрабатываться частично
  • каждая строка заказа может обрабатываться частично
в противном случае, по Вашему предложению, вместо легкого update при каждой обработке строки заказа придется писать очень тяжелый метод определения, является ли данная строка последней
__________________
Мы летаем, кружимся, нагоняем ужасы ...
За это сообщение автора поблагодарили: AvrDen (1).
Старый 13.01.2011, 12:32   #11  
AvrDen is offline
AvrDen
Участник
 
134 / 26 (1) +++
Регистрация: 04.08.2005
Адрес: Усть-Каменогорск
Спасибо!
Я тоже так подумал что это сделано из-за частичной обработке заказа, просто у нас на предприятии все заказы обрабатываются всегда целиком и содержат по 2-5 тыс. строк и разноска занимает очень продожетельное время. Вот и приходиться искать пути оптимизации
Старый 13.01.2011, 12:39   #12  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,510 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Цитата:
Сообщение от AvrDen Посмотреть сообщение
Спасибо!
Я тоже так подумал что это сделано из-за частичной обработке заказа, просто у нас на предприятии все заказы обрабатываются всегда целиком и содержат по 2-5 тыс. строк и разноска занимает очень продожетельное время. Вот и приходиться искать пути оптимизации
В вашем случае как раз и подошёл бы способ, предложенный Tasmanian Devil. Напишите метод, который по завершении обработки строк накладной проверяет, можно ли изменить статус заказа.
__________________
С уважением,
Вячеслав
Старый 13.01.2011, 12:45   #13  
AvrDen is offline
AvrDen
Участник
 
134 / 26 (1) +++
Регистрация: 04.08.2005
Адрес: Усть-Каменогорск
Цитата:
Сообщение от pitersky Посмотреть сообщение
В вашем случае как раз и подошёл бы способ, предложенный Tasmanian Devil. Напишите метод, который по завершении обработки строк накладной проверяет, можно ли изменить статус заказа.
Да я так и попробую. Посмотрим как это повлияет.
Старый 13.01.2011, 12:54   #14  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,732 / 406 (17) +++++++
Регистрация: 23.03.2006
Цитата:
Сообщение от AvrDen Посмотреть сообщение
Да я так и попробую. Посмотрим как это повлияет.
простое убирание обновления статуса в разноске из цикла в конец отработки всех строк, скорее всего мало повлияет на скороть обработки:
1. это не самая тяжелая операция
2. updateStatus вызывается еще при обновлении строк заказа
Старый 13.01.2011, 13:34   #15  
AvrDen is offline
AvrDen
Участник
 
134 / 26 (1) +++
Регистрация: 04.08.2005
Адрес: Усть-Каменогорск
Цитата:
Сообщение от ice Посмотреть сообщение
простое убирание обновления статуса в разноске из цикла в конец отработки всех строк, скорее всего мало повлияет на скороть обработки:
1. это не самая тяжелая операция
2. updateStatus вызывается еще при обновлении строк заказа
При анализе нашли, что больше тормоза происходят в методе salesLine.lowestSalesStatus, который вызываеться из salesTable.updateBackStatus. Скорее всего из-за того что нет индекса по SalesId,SalesStatus в таблице salesLine. В итоге получается что при обработке заказа больше 1000 строк на обработку одной строки уходит порядка 10 сек.
Старый 13.01.2011, 13:43   #16  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,732 / 406 (17) +++++++
Регистрация: 23.03.2006
Цитата:
Сообщение от AvrDen Посмотреть сообщение
При анализе нашли, что больше тормоза происходят в методе salesLine.lowestSalesStatus, который вызываеться из salesTable.updateBackStatus. Скорее всего из-за того что нет индекса по SalesId,SalesStatus в таблице salesLine. В итоге получается что при обработке заказа больше 1000 строк на обработку одной строки уходит порядка 10 сек.
раз так, то добавьте нужный индекс. а лучше включите трассировку sql-запросов и посмотрите, какие конкретно запросы тормозят

Последний раз редактировалось ice; 13.01.2011 в 13:47.
Старый 13.01.2011, 13:49   #17  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от ice Посмотреть сообщение
раз так, то добавьте нужный индекс
угу.
а еще лучше - удаляйте старые уже обработанные заказы

при правильном кодировании все параметры из заказа должны переноситься в документы.
при правильном кодировании ни отчеты, ни обработки не должны обращаться к старым заказам
при правильном кодировании обработанные заказы могут автоматически удалятся (см. параметр модуля)
функционал умеет также "сокращать" строки заказа, автоматически убирая уже обработанную часть.

если обработанные заказы удаляются, то на логическом уровне получается красивая картина:
УЖЕ сделанное находится в фактических документах
ОЖИДАЕМОЕ в ближайшем будущем находится в заказах
__________________
полезное на axForum, github, vk, coub.
Старый 13.01.2011, 14:07   #18  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,510 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Цитата:
Сообщение от mazzy Посмотреть сообщение
угу.
а еще лучше - удаляйте старые уже обработанные заказы
При всём уважении к этому подходу - ни разу не видел на внедрениях, чтобы он применялся. Думаю, что бухгалтерия встанет на дыбы, но такого не допустит.
__________________
С уважением,
Вячеслав
Старый 13.01.2011, 14:15   #19  
AvrDen is offline
AvrDen
Участник
 
134 / 26 (1) +++
Регистрация: 04.08.2005
Адрес: Усть-Каменогорск
Цитата:
Сообщение от ice Посмотреть сообщение
раз так, то добавьте нужный индекс. а лучше включите трассировку sql-запросов и посмотрите, какие конкретно запросы тормозят
Да в трассировке и нашли что тормозит

X++:
    select minof(SalesStatus) from salesLine
        where   salesLine.SalesId       == salesId              &&
                salesLine.SalesStatus   >  SalesStatus::None;
Старый 13.01.2011, 14:18   #20  
AvrDen is offline
AvrDen
Участник
 
134 / 26 (1) +++
Регистрация: 04.08.2005
Адрес: Усть-Каменогорск
Цитата:
Сообщение от mazzy Посмотреть сообщение
угу.
а еще лучше - удаляйте старые уже обработанные заказы
У нас это требование руководства - хранить "историю"....
Теги
как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Создание производственного заказа программно ena_ax DAX: Программирование 7 23.09.2011 11:38
Цены в строке заказа меняются при изменении шапки заказа s.alex DAX: Функционал 8 14.04.2009 11:27
Статус "Отменено" в строках заказа oleg61858 DAX: База знаний и проекты 12 16.10.2007 23:28
Цена на дату создания заказа/закупки George Nordic DAX: Функционал 2 29.06.2005 15:56
Сообщение по обработке строк заказа... Venera DAX: Функционал 5 21.06.2004 13:51

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

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

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