Открыть меню
Платформа Эра. Документация
Toggle preferences menu
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Подстановки и выражения

Материал из Платформа Эра. Документации

Подстановки

В ряде случаев бывает полезно использовать динамические константы, которые будут наполняться данными.

Для этого в строковой константе можно указывать выражения в квадратных скобках. Они заменяются на значения полей класса либо на служебные переменные.

Приведем несколько примеров:

1. Заголовок карточки: Задача [number]. Если класс содержит поле number, то при открытии карточки ее заголовок будет иметь вид Задача 123. 2. URL фрейма: https://www.rbc.ru/search/?project=rbcnews&query=[$$$CurrentUserInfo$$ $.ext.token]. Будет открыта указанная страница с передачей поля ext.token текущего пользователя. Может использоваться при авторизации во внешних системах.

3. Гиперссылка редактора callcenter/PhoneNumber: { "code": "eraEnvironment.get('EraGlobal')?.makeCall('[$value]');", "expressionKind": "code" } Значение [$value] будет заменено на номер телефона, а при клике на гиперссылке будет выполнен содержащий его javascript-код.

Служебные значения:

  • $value – значение текущего поля
  • $$$CurrentUserId$$$ – идентификатор текущего пользователя
  • $$$CurrentUserRoles$$$ – список ролей текущего пользователя
  • $$$CurrentDomain$$$ – имя текущего домена
  • $$$CurrentUserInfo$$$ – объект текущего пользователя (содержащий среди прочего расширяемое поле ext)

Выражения

В качестве значений некоторых свойств элементов управления можно задавать не только константы, но и выражения. Выражения задаются в виде объекта, содержащего поле expressionKind:

  • const – константа из поля const { "expressionKind": "const", "const": "dog" } эквивалентно значению "dog"
  • code – выполнение кода из поля code, с предварительной подстановкой { "expressionKind": "code", "code": "eraEnvironment.get('EraGlobal')?.makeCall('[$value]');" }
  • substitution – подстановка значений по шаблону value { "expressionKind": "substitution", "value": "[attachmentLink]/[name]" }
  • property – значение свойства value { "expressionKind": "property", "value": "resource_id" }
  • setting – значение параметра системы value { "expressionKind": "setting", "value": "callcenter.indicators.connections.current.duration.green" }
  • function – значение функции functionKind { "expressionKind": "function", "functionKind": "tomorrow" }

Доступные типы функций:

enum EFunctionKind {
 now = "now",
 today = "today",
 tomorrow = "tomorrow",
 afterTomorrow = "afterTomorrow",
 yesterday = "yesterday",
 weekAgo = "weekAgo",
 monthAgo = "monthAgo",
 yearAgo = "yearAgo",
 weekBegin = "weekBegin",
 weekEnd = "weekEnd",
 monthBegin = "monthBegin",
 monthEnd = "monthEnd",
 yearBegin = "yearBegin",
 yearEnd = "yearEnd",
}


Выражения можно использовать в следующих свойствах объектов:

  • editorOptions.link
  • selectEditorOptions.items
  • actionParameter.defaultValue
  • actionParameter.optionsUI.defaultValue, .showInToolbar
  • tableControlOptions.data.defaultFilter
  • tableControlOptions.customColumn.link
  • filterControlOptions.template.value.value
  • filterControlOptions.field.defaultValue, .visible
  • chartControlOptions.argumentAxis.visualRange.startValue, .endValue
  • chartControlOptions.data.defaultFilter
  • valueControlOptions.colorRule.value
  • calendarControlOptions.startDayHour, .endDayHour, .cellDuration
  • calendarControlOptions.allowInsert, .allowModify, .allowDelete