16.08.2004, 12:14 | #1 |
Участник
|
Резервирование 10000 номеров из номерной серии
Привет всем!
Передо мной стоит задача: интеграция Аксапты 3.0 с другой системой. Для этой другой системы нужно ежедневно запрашивать по несколько тысяч номеров счетов-фактур из Аксапты. Потом эта система создаст реальные счета-фактуры, которые будут снова вовращены в Аксапту и сохранены с заранее зарезервированными номерами. Следующий написанный мною код выполняет эту задачу: //09.07.2004 DDemidov - Резервирование номеров счетов-фактур аванса для САП static void ReserveFacturaNumbers_Avans(int _howManyNumbers, TransDate _transDate) { NumberSeq factureNumberSeq; str num; int i; SAPReservNumbers_Avans sAPReservedFacturaNumbers; ; delete_from sAPReservedFacturaNumbers; try { ttsbegin; factureNumberSeq = NumberSeq::newGetNum (CustParameters::numRefCustPrepaymentFactureId_RU()); for (i=0; i<_howManyNumbers; i++) { num = factureNumberSeq.num(); factureNumberSeq.used(); sAPReservedFacturaNumbers.clear(); sAPReservedFacturaNumbers.ReservedNum = num; sAPReservedFacturaNumbers.TransDate = _transDate; sAPReservedFacturaNumbers.insert(); } ttscommit; } catch(Exception::Error) { return; } } Данный код выбрасывает новые номера в специальную таблицу, из которой потом другая система берет эти номера. Каждый новый номер сохраняется в отдельной строке этой специальной таблицы Проблема: это работает очень медленно. Причем убирал код, который кладет зарезервированные номера в специальную таблицу, быстродействие не повысилось. Медленно работает функция factureNumberSeq.num(). Есть ли способ получить нужное количество номеров за одну итерацию, а не в цикле? И при этом, чтобы номерная серия продолжала корректно работать, т.е. возвращать уникальные номера с инкрементным возрастанием? |
|
16.08.2004, 12:29 | #2 |
Administrator
|
Попробуйте включить предварительное выделение для номерной серии (Серии документов, закладка "Производительность"). Если не устроит, возможны варианты. Например, работа напрямую с таблицей (без класса NumberSeq).
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|