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

Обработчики данных

Материал из Платформа Эра. Документации
Версия от 13:12, 3 марта 2025; AZykov (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Предыдущая статья курса: Принципы разработки

Общая информация

Редактор обработчика

Обработчики (Handlers) это элементы пакета, реализующие логику обработки событий объектов.

Создание новых обработчиков доступно в приложении Builder.

Для каждого обработчика задаётся класс и тип события, на которое он реагирует, а так же приоритет (в случае наличия нескольких обработчиков на одно событие), признак активности и действие, которое будет запускать обработчик при старте.

Список свойств обработчика:

Свойства обработчика
Свойство Значение по-умолчанию Комментарий
name Имя обработчика
fullName [packageName]/[name] Генерируется автоматически
enabled True Признак активности обработчика, если False то обработчик не будет реагировать на события
priority 100 Приоритет исполнения. В случае наличия нескольких обработчиков одного события, они будут исполняться в порядке возрастания приоритета.
class_fullMultiName fullMultiName класса, события которого будут обрабатываться
operationKind Тип операции (события), которое будет обрабатываться в данном обработчике:
  • insert - при добавлении объекта класса
  • modify - при изменении объекта класса
  • delete - при удалении объекта класса
handlerAction Code Тип действия, которое будет исполняться при старте обработчика:
  • code - исходный код, в серверном контексте
  • svcScenario - служебный сценарий
  • serviceMethod - метод сервиса
scenarioCode Только при handlerAction=svcScenario

Код служебного сценария для запуска

code Только при handlerAction=code

Исходный код метода. Данный метод будет исполняться в серверном контексте

serviceName Только при handlerAction=serviceMethod

Имя сервиса, который будет запущен при срабатывании обработчика

methodName Только при handlerAction=serviceMethod

Метод сервиса, который будет запущен при срабатывании обработчика

Прерывание операций

Если обработчик испольует handlerAction=Code, он может прервать исполнение операции, из которой был вызван (добавление, изменение, удаление).

Для этого, необходимо использовать возврат из метода обработчика:

  • При возврате true, обработчик не препятствует дальнейшему исполнению логики.
  • При возврате false, обработчик отменяет текущее действие.
  • При возврате строки, обработчик отменяет текущее действие, а возвращенная строка будет использоваться как сообщение об ошибке.

Параметры в методах обработчика

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

Использованный ранее пример вызова служебного сценария из действия, также может быть вызван с помощью обработчика:

var result = await this.invoke(
 'callcenter.EraConnectorService',
 'ServiceScript_execute',
 { code: 'test01', startparam1: entity.name });
 if (result.state === EInvocationState.success)
 entity.address = result.response?.variables?.var;

Здесь через this доступны методы контекста, а через entity можно получить значения свойств объекта, вызвавшего событие (например, свойство name).


Следующая статья курса: Вычислимые поля
Предыдущая статья курса: Принципы разработки