![]() |
#30 |
Участник
|
Цитата:
Сообщение от Masel
![]() Оптимизировал все таки корреспонденцию. Тестовый пример заказ на 2770 строк. В CIL выигрыш в абсолютном выражении не большой: время сократилось с 1,5 минут до 18 секунд. А в p-code c 20 минут до 1 мин 35сек. Медленно работало объединение списков ссылок на проводки TaxTrans при суммировании проводок ГК в корреспонденции. Это делалось поэлементно, переделал на контейнеры.
Спасибо! 2. Для длинных коллекций в Аксапте вместо контейнеров лучше использовать List. Контейнер только в 2012 и только в CIL реализован на базе System.Array в младших версиях и в p-code контейнер реализован на базе строки. 3. смотрите что сейчас у вас получается. 3.1. вы получаете коллекцию taxTransactionRelationshipCollection 3.2. эта коллекция по сути дела является Map(Key:RecId, Value:Set{Enum}) 3.3. вы перекладываете этот map в 4 ваших контейнера (кстати, enum'ов больше, чем 4) 3.4. а в методе taxTransactionRelationshipCollection() вы перекладываете ваши контейнеры в новую коллекцию taxTransactionRelationshipCollection. вопрос: а зачем вообще нужна эта перекладка из мапы в контейнер и наоборот? добавьте метод merge в класс LedgerPostingOneToManyCollection и пользуйтесь доступом непосредственно к методам мапы и множества - insert, lookup, in, add. Получится и проще для понимания и быстрее. вопрос: а зачем вообще нужна мапа, состоящая из множеств? для которой нужно реализовывать операции с каждым элементом. Если уж решились оптимизировать - используйте временную таблицу. тогда сложение двух коллекций будет реализовано оператором insert_recordset. Причем используйте временную таблицу прямо внутри класса LedgerPostingOneToManyCollection. Оставьте внешний интерфейс класса неизменным, а внутреннюю реализацию сделайте на временной таблице. ------------------------------------ Скорее всего, классы LedgerPostingOneToManyCollection и LedgerBondMergeablesGeneralJour_RU реализовывали разные люди.------------------------------------ и... фу, какие душные названия в ax2012. Последний раз редактировалось mazzy; 08.02.2022 в 19:41. |
|
Теги |
faq, tax, налоги, оптимизация, производительность |
|
![]() |
||||
Тема | Ответов | |||
Вызов метода базового класса | 15 | |||
jerry-dynamics: tax codes | 0 | |||
Вызов класса из другого класса | 9 | |||
передача курсора в два класса | 3 | |||
Запустить метод класса | 2 |
|