Перейти к содержанию

Статья для предыдущей поддерживаемой версии ПО — 4.7!

Текущая рекомендованная версия — Comindware Platform 5.0. См. документацию к версии 5.0.

Оптимизация работы вычисляемых атрибутов

Одной из возможных причин снижения производительности работы Comindware Business Application Platform является использование вычисляемых атрибутов. По имеющемуся свойству, значение в вычисляемом атрибуте не является хранимым, а высчитывается каждый раз при обращении к нему. В зависимости от сложности и корректности написания выражения, например, циклической формулы, пересчет может занять значительное время, а вычисляемый атрибут может в значительной степени повлиять на производительность работы некоторых разделов системы:

  • Таблица записей — при отображении вычисляемого атрибута на таблице записей в момент открытия таблицы пересчитываются все значения по заданному вычисляемому выражению;
  • Форма записи — при отображении вычисляемого атрибута на форме записи значение пересчитывается не только в момент открытия формы, но и при любом клике по атрибуту, изменении значения любого другого атрибута, добавлении записи в коллекцию и т.д.;
  • API, C# скрипты — при обращении к данным через API, например, получении информации по конкретной записи или массиву записей, для вычисляемого атрибута будет пересчитано значение перед отправкой, что может увеличить время получение ответа на запрос.

Решение

  1. По мере возможности рекомендуем не выносить вычисляемые атрибуты на часто используемые сотрудниками таблицы для получения оперативной информации. Выносить их только для отчетов с предупреждением пользователей о возможном увеличении времени загрузки данных.
  2. При написании вычисляемого выражения на языке Comindware Expression Language рекомендуем переписать его на языке N3 (примеры выражений на N3 вы можете найти в категории Язык N3).
  3. Используйте альтернативные варианты получения аналогичного результата вместо использования вычисляемых полей (п. 4 и п. 5).
  4. При использовании вычисляемого атрибута в процессе возможно заменить его на установку значения в сценариях на входе или выходе из элемента процесса.
  5. При использовании вычисляемого атрибута на форме записи возможно заменить его на установку значения в правилах для конкретной формы.