|
|
#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 | |||
|