29.03.2006, 13:57 | #1 |
Участник
|
Где изменяется статус заказа?
Подскажите пож-та где именно происходит изменение статуса Заказа. при его обработке. Пол дня ищу, но что то не успешно
|
|
29.03.2006, 14:04 | #2 |
Модератор
|
?? Не понял.
Тебя интересует, где непосредственно происходит update? В SalesFormLetter есть чудесный метод postUpdate X++: if (salesTable)
{
salesTable.updateDocumentStatus(this.documentStatus());
salesTable.updateBackStatus();
this.updateSalesType();
this.createBackorderLines();
salesTable.updateDeadline(salesParmUpdate.respiteDate);
} С Уважением, Георгий |
|
29.03.2006, 14:05 | #3 |
Модератор
|
Пол-дня... Друг, поставил бы брекпоинт на update в salesTable да и посмотрел бы
С Уважением, Георгий |
|
29.03.2006, 15:09 | #4 |
Участник
|
Спасибо.
|
|
26.05.2006, 14:27 | #5 |
Участник
|
Цитата:
Сообщение от George Nordic
Пол-дня... Друг, поставил бы брекпоинт на update в salesTable да и посмотрел бы
С Уважением, Георгий |
|
26.05.2006, 14:50 | #6 |
Модератор
|
Цитата:
Сообщение от simply2double
какой такой брекпоинт... ты точно скажи.. скока вешать...
Я ж говорю: Класс SalesFormLetter, метод postUpdate. Вызывает метод updateDocumentStatus(новый статус) таблицы SalesTable |
|
26.05.2006, 15:07 | #7 |
Участник
|
Цитата:
Сообщение от George Nordic
200 граммов |
|
13.01.2011, 11:37 | #8 |
Участник
|
Добрый день!
Очень интересует зачем менять статус заказа при обработке каждой строки заказа? Почему нельзя это сделать в конце один раз? |
|
13.01.2011, 12:02 | #9 |
северный Будда
|
А если заказ отгружается несколькими накладными? Как определить этот самый момент в конце?
__________________
С уважением, Вячеслав |
|
|
За это сообщение автора поблагодарили: AvrDen (1). |
13.01.2011, 12:05 | #10 |
Мрачный тип
|
Потому что:
__________________
Мы летаем, кружимся, нагоняем ужасы ... |
|
|
За это сообщение автора поблагодарили: AvrDen (1). |
13.01.2011, 12:32 | #11 |
Участник
|
Спасибо!
Я тоже так подумал что это сделано из-за частичной обработке заказа, просто у нас на предприятии все заказы обрабатываются всегда целиком и содержат по 2-5 тыс. строк и разноска занимает очень продожетельное время. Вот и приходиться искать пути оптимизации |
|
13.01.2011, 12:39 | #12 |
северный Будда
|
В вашем случае как раз и подошёл бы способ, предложенный Tasmanian Devil. Напишите метод, который по завершении обработки строк накладной проверяет, можно ли изменить статус заказа.
__________________
С уважением, Вячеслав |
|
13.01.2011, 12:45 | #13 |
Участник
|
|
|
13.01.2011, 12:54 | #14 |
Участник
|
простое убирание обновления статуса в разноске из цикла в конец отработки всех строк, скорее всего мало повлияет на скороть обработки:
1. это не самая тяжелая операция 2. updateStatus вызывается еще при обновлении строк заказа |
|
13.01.2011, 13:34 | #15 |
Участник
|
При анализе нашли, что больше тормоза происходят в методе salesLine.lowestSalesStatus, который вызываеться из salesTable.updateBackStatus. Скорее всего из-за того что нет индекса по SalesId,SalesStatus в таблице salesLine. В итоге получается что при обработке заказа больше 1000 строк на обработку одной строки уходит порядка 10 сек.
|
|
13.01.2011, 13:43 | #16 |
Участник
|
Цитата:
Сообщение от AvrDen
При анализе нашли, что больше тормоза происходят в методе salesLine.lowestSalesStatus, который вызываеться из salesTable.updateBackStatus. Скорее всего из-за того что нет индекса по SalesId,SalesStatus в таблице salesLine. В итоге получается что при обработке заказа больше 1000 строк на обработку одной строки уходит порядка 10 сек.
Последний раз редактировалось ice; 13.01.2011 в 13:47. |
|
13.01.2011, 13:49 | #17 |
Участник
|
угу.
а еще лучше - удаляйте старые уже обработанные заказы при правильном кодировании все параметры из заказа должны переноситься в документы. при правильном кодировании ни отчеты, ни обработки не должны обращаться к старым заказам при правильном кодировании обработанные заказы могут автоматически удалятся (см. параметр модуля) функционал умеет также "сокращать" строки заказа, автоматически убирая уже обработанную часть. если обработанные заказы удаляются, то на логическом уровне получается красивая картина: УЖЕ сделанное находится в фактических документах ОЖИДАЕМОЕ в ближайшем будущем находится в заказах |
|
13.01.2011, 14:07 | #18 |
северный Будда
|
При всём уважении к этому подходу - ни разу не видел на внедрениях, чтобы он применялся. Думаю, что бухгалтерия встанет на дыбы, но такого не допустит.
__________________
С уважением, Вячеслав |
|
13.01.2011, 14:15 | #19 |
Участник
|
Цитата:
X++: select minof(SalesStatus) from salesLine where salesLine.SalesId == salesId && salesLine.SalesStatus > SalesStatus::None; |
|
13.01.2011, 14:18 | #20 |
Участник
|
|
|