Для работы с системными переменными в Creatio 8 Atlas используется сервис sdk.SysValuesService.
В Creatio 8 Atlas изменилось обращение к системным переменным. Теперь имя системной переменной записывается в нижнем регистре без использования разделителей _ и префикса CURRENT (например, maintainer, primaryLanguage и т. д.).
Чтобы отобразить значение системной переменной на странице:
- На шаге 1 алгоритма кастомизации страницы Freedom UI при необходимости добавьте на страницу надпись, в которой планируется отобразить значение системной переменной.
-
На шаге 2 алгоритма кастомизации страницы Freedom UI настройте отображение значения системной переменной на странице.
-
Подключите сервис системных переменных sdk.SysValuesService. Для этого добавьте в AMD-модуль зависимость @creatio-devkit/common.
Пример добавления зависимости в AMD-модуль UsrAppClientSchemaName приведен ниже.
Зависимости AMD-модуля - В секцию viewModelConfig добавьте атрибут, который хранит информацию. Добавление атрибута аналогично описанному в алгоритме настройки условия отображения поля.
- В секции viewConfigDiff привяжите свойство caption к соответствующему атрибуту модели. Привязка свойства аналогична описанной в алгоритме настройки условия отображения поля. Вместо свойства visible используйте свойство caption, которое отвечает за текст отображаемый в элементе.
-
В секцию handlers добавьте пользовательскую реализацию обработчика системного запроса crt.HandlerViewModelInitRequest. Обработчик выполняется при инициализации View модели. В зависимости от значения атрибута (true или false), обработчик выполняет разную бизнес-логику.
- Создайте экземпляр сервиса системных значений из @creatio-devkit/common.
- Загрузите системные значения.
- При необходимости выполните расчет значения и запишите результат расчета в соответствующий атрибут.
Пример обработчика запроса crt.HandleViewModelInitRequest с результатом расчета someVariable, который записан в атрибут SomeAttributeName, представлен ниже.
Секция handlers
-
Подробный пример настройки отображения значения системной переменной приведен в статье Отобразить на странице значения системных переменных.
1. Настроить интерфейс страницы
- Используя шаблон [ Данные и бизнес-процессы ] ([ Records & business processes ]), создайте пользовательское приложение System variables. Для этого воспользуйтесь инструкцией, которая приведена в статье Создать пользовательское приложение.
- В рабочей области страницы приложения System variables откройте страницу [ Страница записи System variables ] ([ System variables form page ]).
- Удалите поле [ Название ] ([ Name ]), которое по умолчанию добавлено на страницу [ Страница записи System variables ] ([ System variables form page ]).
-
Добавьте надпись текущего контакта.
- В рабочую область Freedom UI дизайнера добавьте компонент типа [ Надпись ] ([ Label ]).
-
На панели действий Freedom UI дизайнера нажмите на кнопку
и на панели настройки заполните свойства надписи:
- [ Заголовок ] ([ Title ]) — "Текущий пользователь" ("Current user").
- [ Стиль ] ([ Style ]) — выберите "Описание" ("Caption").
- [ Цвет текста ] ([ Text color ]) — выберите серый цвет.
-
Аналогично добавьте надписи:
- Значения имени текущего контакта из системной переменной.
- Разницы во времени с UTC.
- Значения разницы во времени с UTC из системной переменной.
Свойства надписей, которые необходимо добавить, приведены в таблице ниже.
Значения свойств надписейЭлемент Свойство Значение свойства Надпись, которая содержит значение имени текущего контакта из системной переменной [ Заголовок ] ([ Title ]) "Текущий пользователь (значение)" ("Current user (value)") [ Стиль ] ([ Style ]) Выберите "Обычный текст" ("Body text") Надпись разницы во времени с UTC [ Заголовок ] ([ Title ]) "Разница во времени с UTC" ("Contact time offset") [ Стиль ] ([ Style ]) Выберите "Описание" ("Caption") [ Цвет текста ] ([ Text color ]) Выберите серый цвет Надпись, которая содержит значение разницы во времени с UTC из системной переменной [ Заголовок ] ([ Title ]) "Разница во времени с UTC (значение)" ("Contact time offset (value)") [ Стиль ] ([ Style ]) Выберите "Обычный текст" ("Body text") - На панели действий Freedom UI дизайнера нажмите на кнопку
. После сохранения настроек страницы открывается исходный код страницы Freedom UI.
2. Настроить получение значений системных переменных
Бизнес-логика настраивается в дизайнере клиентского модуля. В этом примере настроим получение значений системных переменных.
-
Подключите сервис системных переменных sdk.SysValuesService. Для этого добавьте в AMD-модуль зависимость @creatio-devkit/common.
-
В секцию viewModelConfig добавьте атрибуты:
- CurrentUser — атрибут, который хранит имя текущего контакта.
- ContactTimezone — атрибут, который хранит разницу во времени (в часах) между временем в часовом поясе текущего контакта и UTC.
-
В секции viewConfigDiff измените значение свойства caption:
- $CurrentUser — для элемента CurrentUserValue.
- $ContactTimezone — для элемента ContactTimeOffsetValue.
Свойство caption отвечает за текст, который содержит элемент.
-
В секции handlers добавьте пользовательскую реализацию обработчика системного запроса crt.HandlerViewModelInitRequest. Обработчик выполняется при инициализации View модели.
- Создайте экземпляр сервиса системных значений из @creatio-devkit/common.
- Загрузите системные значения.
- Установите имя контакта текущего пользователя в атрибут CurrentUser.
- Переведите значение разницы в часовых поясах с минут в часы и запишите ее в атрибут ContactTimezone.
Полный исходный код схемы страницы - На панели инструментов дизайнера клиентского модуля нажмите [ Сохранить ] ([ Save ]).
Результат выполнения примера
Чтобы посмотреть результат выполнения примера:
- Перейдите на страницу приложения System variables и нажмите [ Запустить приложение ] ([ Run app ]).
- На панели инструментов приложения System variables нажмите [ Добавить ] ([ New ]).
В результате выполнения примера на странице записи пользовательского раздела [ System variables ] отображаются имя текущего пользователя и значение разницы во времени (в часах) между временем в часовом поясе текущего контакта и UTC. При этом используются значения соответствующих системных переменных.