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

Обработчики данных: различия между версиями

Материал из Платформа Эра. Документации
Нет описания правки
Нет описания правки
 
Строка 100: Строка 100:


  Предыдущая статья курса: [[Принципы разработки]]
  Предыдущая статья курса: [[Принципы разработки]]
[[Категория:Курс "Разработка приложений"]]

Текущая версия от 13:12, 3 марта 2025

Предыдущая статья курса: Принципы разработки

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

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

Обработчики (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).


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