AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Функционал
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.06.2026, 10:26   #1  
Zavaryka_kofeiky is offline
Zavaryka_kofeiky
Участник
 
4 / 10 (1) +
Регистрация: 26.03.2026
Адрес: Москва
? AX2012 || Работа с SysClientAccessLog || Неточности фиксирования длительности открытия и закртия форм
Всем привет!

Разбираюсь с таблицей SysClientAccessLog и функционалом связанным с ней, создал форму для разбора контейнера EventContainer и отображения данных и путем экспериментов и сравнением с Sentry обозначил, что третий элемент контейнера является длительность события. Если ошибся, то расскажите что это за параметр и как его использовать.
Как я понимаю до кода этого функционала не добраться (он в ядре) и документации по его работе изнутри нет, но если у вас есть что-либо, буду признателен.

Основной вопрос в том, что за некоторыми формами, по типу PurchTableListPage и ProdTableListPage, во время изучения было обнаружено странное поведение. Если запускать форму несколько раз, то 2-3 первых запуска ее в сессии показывают нормальное значение длительности, а последующие показывают время от запуска формы до запуска следующего экземпляра этой формы.

Например:
1 - ProdTableListPage - Открытие формы - 719 мс
2 - ProdTableListPage - Открытие формы - 468 мс
3 - ProdTableListPage - Открытие формы - 4609 мс
4 - ProdTableListPage - Открытие формы - 4359 мс
5 - ProdTableListPage - Открытие формы - 4297 мс
6 - ProdTableListPage - Открытие формы - 4125 мс
7 - ProdTableListPage - Открытие формы - 5656 мс
8 - ProdTableListPage - Открытие формы - 10204 мс

P.S. Первые 7 раз я отсчитывал в голове 5 секунд нахождения на форме, в последний раз 10 и сразу закрыл клиент.
AOS является чистым, специально для этой проверки

Кто-то сталкивался с таким поведением?

Единственная моя зацепка в том, что я смог воссоздать ситуацию на пустой форме, где разместил сначала 80 сеппараторов (кнопок/stringEdit и т.п.) и воссоздать это поведение. При удалении одного элемента (79 элементов формы) такого эффекта уже нет. Но не хочется верить, что это из-за количества элементов, потому что, согласно документациям, никаких ограничений нет, да и форм содержащих более 80 дизайн-элементов предостаточно

Спасибо!
Старый 24.06.2026, 08:25   #2  
Zavaryka_kofeiky is offline
Zavaryka_kofeiky
Участник
 
4 / 10 (1) +
Регистрация: 26.03.2026
Адрес: Москва
Нашел ответы на некоторые вопросы.

В этой статье (https://learn.microsoft.com/en-us/pr...rmance-options) есть часть посвященная предзагрузке сложных форм, где фигурирует кол-во элементов в форме (число 80, о котором я писал ранее).

При отключении AllowPreLoading (значение: No) проблема, вроде бы, решается. Форма не предзагружается и правильно считает длительность открытия сложных форм.
Старый 24.06.2026, 12:35   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
4,021 / 3327 (119) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Если форма тяжелая с большим числом датасорсов и по таблицам с большим числом полей и методов то все это люто тормозит в 12-ке при первом открытии.

У нас форма заказов на продажу и закупок в компании пустышке dat открывалась по 30-40 секунд и это время тратилось на начитку метаданных из аот.

По возможности я просто переписываю такие формы выкидывая из них ненужный контролы и датасорсы. Это сильно облегчает и ускоряет работу.
За это сообщение автора поблагодарили: Zavaryka_kofeiky (1).
Старый 24.06.2026, 14:17   #4  
Zavaryka_kofeiky is offline
Zavaryka_kofeiky
Участник
 
4 / 10 (1) +
Регистрация: 26.03.2026
Адрес: Москва
Спасибо за ответ! Но, думаю, мы говорим о немного разных вещах.

Меня интересует не производительность самой формы как таковой, а корректность данных в SysClientAccessLog — конкретно третий элемент EventContainer, являющийся длительностью открытия.

Проблема в том, что начиная примерно с 2–3 открытия одной и той же формы в сессии, это значение перестаёт отражать реальное время открытия и начинает показывать время от момента открытия формы до момента открытия следующего её экземпляра. То есть если я подождал 5 секунд и открыл форму снова — предыдущая запись показывает ~5000 мс вместо реального времени рендера.

Это, как я понял, связано с механизмом предзагрузки (AllowPreLoading): при отключении этой опции аномалия исчезает. Судя по всему, предзагруженный экземпляр формы не закрывается, и ядро продолжает отсчитывать время до следующего открытия.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
stephenmann: Technical History of Dynamics AX - From Axapta 3.0 to AX2012 Blog bot DAX Blogs 5 03.03.2017 10:22
dynamicsax-fico: Invoice search AX2012 vs. AX7 (Part 2) Blog bot DAX Blogs 0 01.04.2016 10:11
Частичное обновление форм в AX2012 demoded DAX: Программирование 1 23.09.2014 16:22
в AX2012 есть лукап для форм? lvan DAX: Программирование 6 04.04.2013 11:10
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:16.