Доброго всем дня, уважаемые знатоки, вопрос следущий. Имеется текстовый файл с операциями из другой системы (не 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 минуты. Становится ясно, что до конца загрузки система не дотянет. От этого становится неимоверно грустно. Как добиться того, что бы показатели скорости обработки не падали? В каком направлении копать? Возможно нужно очищать память или ещё что-нибудь? Подскажите, не оставте без внимания. Заранее благодарен.