[ELMA3] Пример сценария вычисления значения поля
В системе ELMA реализована функция Вычисления значения поля. В качестве инструмента вычисления используется сценарий на языке С#. Данная функция может быть использована разнообразными способами. Рассмотрим некоторые из них. По умолчанию при создании поля объекта функция вычисления значения выключена. Для того, чтобы ее включить, зайдите в настройки поля, перейдите во вкладку Дополнительно, и выберите из выпадающего списка Тип вычисления значения, сценарий С#.
В системе есть справочник Контакт, создадим в нем атрибут Фамилия и инициалы, но не будем заполнять его вручную, а напишем сценарий который будет вычислять его значение.
Сценарий:
string.IsNullOrEmpty(Surname) || string.IsNullOrEmpty(Firstname) || string.IsNullOrEmpty(Middlename) ? " " : string.Format("{0} {1}. {2}.", Surname, Firstname.Substring(0,1), Middlename.Substring(0,1))
Публикация и перезагрузка
После добавления сценария, опубликуйте объект и перезагрузите сервер ELMA
Посмотрим как это работает:
После сохранения контакта:
Важно!
При работе с вычислением значения поля, нужно понимать, что сценарий – это функция, которая всегда должна вернуть какое-либо значение.
Также все переменные, использованные в сценарии, должны быть проверены на пустое значение и null, в противном случае при перезапуске сервера возникнет необработанное исключение.
В сценарии можно использовать свойства только данного объекта.
Так как вычисление значения поля происходит каждый раз при обращении к объекту, в сценарии нужно исключить использование рекурсии, т.е. обращаться к полю, значение которого вычисляется в данный момент, иначе это приведет к ошибке системы.