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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.03.2009, 09:04   #1  
bobski is offline
bobski
Участник
 
38 / 11 (1) +
Регистрация: 01.10.2008
Navision Создание большого числа заказов на продажу. Падение скорости загрузки.
Доброго всем дня, уважаемые знатоки, вопрос следущий. Имеется текстовый файл с операциями из другой системы (не Ax), разделитель ";" читаем его используя класс ASCIio, тянем контейнерами построчно.
Данные каждой строки проверяются на правильность. Если проверка пройдена, создатся заказ (если в строке указан новый номер документа) и строка по проверенной строке-контейнеру.
Затем в контейнер тянется следующая строчка. Процесс отражается в прогресс баре.
Выгладит код по созданию примерно так:

X++:
//Создание Заказов на продажу
static void SalesOrderCreation(Args _args)
{ 
SalesTable salesTable; 
NumberSeq NumberSeq; 
SalesLine salesLine; 
InventDim IDim; 
; 
ttsbegin; 
NumberSeq = NumberSeq::newGetNumFromCode(SalesParameters::numRefSalesId).numberSequence);
salesTable.SalesId = NumberSeq.num(); 
salesTable.initValue(); 
salesTable.CustAccount = "некий клиент";
salesTable.initFromCustTable(); 
salesTable.InventLocationId = "некий склад"; 
salesTable.insert(); 
//..............строки
salesLine.clear(); 
salesLine.SalesId = salesTable.SalesId; 
salesLine.ItemId = "некая номенклатура";
IDim.InventColorId ="ххх"; //Измерения
IDim.InventLocationId = "ууу"; 
IDim = InventDim::findOrCreate(IDim); 
.............................. // Ещё всякое заполнение полей
salesLine.InventDimId = IDim.inventDimId; 
 salesLine.createLine(true,
  true,
  true,
  true,
  false,
  false,
  true,
  false,
salesLine.InventTransId);
ttscommit; 
}

Проблема же заключается в:
В самом начале затяжки файла (120000 операций) процесс идет очень резво - примерно по 300 записей за такт и оставшееся время оценивается 7 минут (по данным прогресс бара). С течением времени первый из показателей плавно снижается, соответственно оцениваемое время растет. На рубеже в 20000 записей данные выглядят так - операций за обновление прогресс бара ориентировочно = 50, а время до завершения = 22 минуты. Становится ясно, что до конца загрузки система не дотянет. От этого становится неимоверно грустно. Как добиться того, что бы показатели скорости обработки не падали? В каком направлении копать? Возможно нужно очищать память или ещё что-нибудь? Подскажите, не оставте без внимания. Заранее благодарен.
Теги
asciio, createline, заказ, затяжка, скорость

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Расчеты с поставщиками\Функции\Создание на основе заказов\Резервирование заказанной номенклатуры slava09 DAX: Функционал 10 30.01.2007 13:57
Создание склад. журналов из заказов basanko DAX: Функционал 17 30.12.2006 11:49
Создание заказов пакетно chel DAX: Администрирование 5 01.07.2004 15:13
"Закупка на основе заказов" или "сводное планирование" Hamster DAX: Функционал 2 17.02.2004 01:47
Создание заказа? 2b4fITin DAX: Функционал 13 02.02.2004 15:52

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

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

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