Оптимизация работы вычисляемых атрибутов
Одной из возможных причин снижения производительности работы Comindware Business Application Platform является использование вычисляемых атрибутов. По имеющемуся свойству, значение в вычисляемом атрибуте не является хранимым, а высчитывается каждый раз при обращении к нему. В зависимости от сложности и корректности написания выражения, например, циклической формулы, пересчет может занять значительное время, а вычисляемый атрибут может в значительной степени повлиять на производительность работы некоторых разделов системы:
- Таблица записей — при отображении вычисляемого атрибута на таблице записей в момент открытия таблицы пересчитываются все значения по заданному вычисляемому выражению;
- Форма записи — при отображении вычисляемого атрибута на форме записи значение пересчитывается не только в момент открытия формы, но и при любом клике по атрибуту, изменении значения любого другого атрибута, добавлении записи в коллекцию и т.д.;
- API, C# скрипты — при обращении к данным через API, например, получении информации по конкретной записи или массиву записей, для вычисляемого атрибута будет пересчитано значение перед отправкой, что может увеличить время получение ответа на запрос.
Решение
- По мере возможности рекомендуем не выносить вычисляемые атрибуты на часто используемые сотрудниками таблицы для получения оперативной информации. Выносить их только для отчетов с предупреждением пользователей о возможном увеличении времени загрузки данных.
- При написании вычисляемого выражения на языке Comindware Expression Language рекомендуем переписать его на языке N3 (примеры выражений на N3 вы можете найти в категории Язык N3).
- Используйте альтернативные варианты получения аналогичного результата вместо использования вычисляемых полей (п. 4 и п. 5).
- При использовании вычисляемого атрибута в процессе возможно заменить его на установку значения в сценариях на входе или выходе из элемента процесса.
- При использовании вычисляемого атрибута на форме записи возможно заменить его на установку значения в правилах для конкретной формы.
Эта статья была полезна 1 чел.