Интеграция в скрипты процессов
Общее описание
Плагин ufanet-service-engineer-helper позволяет добавить в интерфейс процесса кнопки для удаленного открытия шлагбаумов. Чтобы эти кнопки появились, плагин должен получить идентификатор дома (houseId), с которым связан текущий процесс.
Как плагин получает HouseId
Плагин пытается определить houseId двумя способами (в порядке приоритета):
1. Через событие в скрипте (рекомендуемый способ) — плагин спрашивает скрипт: «Какой houseId у этого процесса?».
2. Через параметр адреса №90 — если скрипт не ответил, плагин пытается взять данные из стандартного параметра адреса.
Настройка обработки события в скрипте
Чтобы предоставить плагину корректный houseId через скрипт, необходимо реализовать обработчик события PluginUserEvent.
Алгоритм реализации в скрипте:
-
Подписка: Скрипт должен подписаться на события
PluginUserEvent. -
Фильтрация: В обработчике события необходимо проверить два поля:
-
pluginId == "ufanet-service-engineer-helper" -
request.type == "open_barrier"
-
-
Формирование ответа: Если условие совпало и
houseIdизвестен, скрипт должен вернуть его в объекте ответа.
Пример реализации (Kotlin/Java)
// Пример обработки события в скрипте процесса
if (event.pluginId == "ufanet-service-engineer-helper" && event.request.type == "open_barrier") {
val houseId = // ... логика получения ID дома для данного процесса ...
// Создаем ответ с houseId
val response = PluginEventResponse(mapOf("houseId" to houseId))
// Передаем ответ обратно в событие
event.setResponse(response)
}