10.02.2010, 16:01 | #1 |
Участник
|
Формирование табеля
AX 4.0 SP2 EE FP1 + Payrol FP3
День добрый! Очень долго формируется табель учета рабочего времени. Выяснилось, что долго выполняется метод getTblCon класса RPayTblTransFormCreate, который в свою очередь вызывается из метода createTblLine этого же класса. В этом методе заполняется контейнер, который, видимо, получается очень большой и, соответственно, занимает много оперативной памяти, и время его заполнения увеличивается с каждым компонентом. Кто-нибудь сталкивался с этой проблемой? |
|
10.02.2010, 16:36 | #2 |
Злыдни
|
Сталкивались. Там еще и данные заполнялись не верно (что-то с учетом по дням/часам и неявками было - сейчас уже точно не вспомню). Плюнули - и переписали формирование отчета с нуля по-человечески. В данном случае, это мне представляется оптимальным вариантом.
|
|
10.02.2010, 16:52 | #3 |
Участник
|
Немножко про другое))
Я про создание табеля, когда всем ставятся 8-ки. Форма Журнал табелей/ кнопка Создание табелей. Или это тоже переписали? |
|
11.02.2010, 10:43 | #4 |
Злыдни
|
Нет, это не переписывали. Да и контейнер там большим быть не должен - откуда? В нем же только значения ставок хранятся, причем только для текущего сотрудника. Копайте дальше - вряд ли в этом проблема.
|
|
11.02.2010, 10:48 | #5 |
Участник
|
Как долго у вас строится табель? Какое количество сотрудников, какое количество табель-ставок, какое количество времен?
__________________
Ivanhoe as is.. |
|
11.02.2010, 12:41 | #6 |
Участник
|
Операция у заказчика выполняется 18,5 часов. При выявлении причин на нашем сервере на данных заказчика обнаружили, что если в методе createTblLine класса RPayTblTransFormCreate в коде осуществлять выход из функции по return перед или после строки tblCon = this.getTblCon(_emplTable.EmplId, _startDateReverse, _endDateReverse); получили прогнозируемое время выполнения операции в 1.5 часа и 13 часов соответственно.
Табель-ставки - 2 штуки, кодов времен - 49 шт, сотрудников больше 4000 человек. |
|
11.02.2010, 17:36 | #7 |
Участник
|
Скорее всего где-то не работает индекс. Это надо искать профайлером.
В стандарте нет кэша на таблице RPayHistory, это может существенно замедлять работу системы. |
|