Поддерживаемые объекты JEXL
Набор объектов зависит от места выполнения выражения. Ниже описан контекст событий процесса, который формирует DefaultProcessChangeListener.getProcessJexlContext. Задачи процесса используют близкий, но не полностью идентичный набор; отличия приведены в документации Process Task.
Основные объекты
| Имя | Тип | Назначение |
|---|---|---|
|
|
Текущий пользователь |
|
|
Чтение параметров текущего пользователя |
|
|
Текущий процесс |
|
|
Чтение параметров текущего процесса |
|
|
Чтение привязок процесса |
|
|
Текущий серверный контекст |
|
Чтение и изменение процесса с проверками и событиями |
|
|
Чтение и изменение параметров с проверками и событиями |
|
|
|
Планирование и управление задачами процесса; оба имени указывают на один сервис |
|
|
Соединения текущего контекста |
|
|
Данные текущего запроса и пользователь |
|
Наследник |
Текущее событие |
|
|
Устаревший прямой доступ к параметрам, оставленный для совместимости |
для новой логики записи используйте processService и parameterService. Прямой paramRepo не публикует сервисные события и может обойти проверки.
|
Методы ProcessChangeFunctions подключены как пространство имён по умолчанию, поэтому их можно вызывать без имени объекта.
Значения параметров процесса
Для каждого параметра, объявленного у типа процесса, доступны две переменные:
-
param<id>— отображаемое строковое значение; -
paramValue<id>— типизированное значение.
Например, param63 содержит текст для показа, а paramValue63 — значение в типе, соответствующем параметру 63.
Загрузка может быть ленивой, если включена настройка jexl.feature.lazyProcessParams. Это не меняет имена и результат выражения: значение загружается при первом обращении в рамках одного JEXL-контекста.
Общие функции и константы
| Имя | Значение |
|---|---|
|
Статические методы |
|
Статические методы |
|
Статические методы |
|
Статические методы |
|
Статические методы |
|
Один перевод строки |
|
Два перевода строки |
|
Буфер диагностического вывода JEXL |
Справочники request-контекста
SetRequestParamsFilter добавляет справочники, доступные в текущем запросе. Их наличие зависит от точки запуска и инициализации HTTP request.
Чаще всего доступны:
-
ctxSetup— глобальная конфигурация; -
ctxUser,ctxUserList,ctxUserMap— текущий пользователь и справочник пользователей; -
ctxUserGroupList,ctxUserGroupMap— группы пользователей; -
ctxUserGroupFullTitledList,ctxUserGroupFullTitledMap— группы с полным путём в названии; -
ctxUserGroupRoleList,ctxUserGroupRoleMap— роли групп в процессах; -
ctxCustomerGroupList,ctxCustomerGroupMap— группы контрагентов; -
ctxProcessTypeMap— типы процессов; -
ctxProcessStatusList,ctxProcessStatusMap— статусы процессов; -
ctxParameterMap— определения параметров.
Не полагайтесь на request-объекты в фоновой задаче: перед использованием проверьте контекст конкретного executor.
Дополнительные значения
Обработчики BuildJexlContextEvent могут добавить собственные значения. Штатный контекст накладывается после пользовательского, поэтому системные ключи переопределить нельзя.
Выбирайте уникальные имена с префиксом подсистемы и документируйте тип объекта. Не помещайте в контекст открытые JDBC-соединения, секреты или объекты с жизненным циклом дольше текущего ServerContext.