Пользовательское событие
Рабочий процесс: пользовательское событие действияCommunity Edition+Введение
В NocoBase есть встроенные типовые действия с данными (создание, удаление, обновление, просмотр и т.д.). Когда этих действий недостаточно для сложных бизнес-задач, можно использовать пользовательское событие в рабочем процессе. Если привязать это событие к кнопке «Запустить рабочий процесс» в блоке страницы, по нажатию пользователя будет запускаться соответствующий рабочий процесс.
Создание рабочего процесса
При создании рабочего процесса выберите «Пользовательское событие»:

Настройка триггера
Тип контекста
v1.6.0+
Тип контекста определяет, к каким кнопкам в блоках можно привязать рабочий процесс:
- Без контекста: глобальное событие, которое можно привязать к кнопкам действий в панели действий и блоках данных.
- Одна запись: можно привязать к кнопкам действий в блоках данных, например в строках таблицы, формах и деталях.
- Несколько записей: можно привязать к кнопкам массовых действий в таблице.

Коллекция
Когда тип контекста — «Одна запись» или «Несколько записей», нужно выбрать коллекцию для привязки модели данных:

Связанные данные для использования
Если в рабочем процессе нужно использовать данные связей из строки данных, вызвавшей событие, здесь можно выбрать поля глубоких связей:

Эти поля будут автоматически предзагружены в контекст рабочего процесса после срабатывания события, и их можно будет использовать в рабочем процессе.
Настройка действия
Конфигурация кнопок действий в разных блоках зависит от типа контекста, настроенного в рабочем процессе.
Без контекста
v1.6.0+
В панели действий и других блоках данных можно добавить кнопку «Запустить рабочий процесс»:



После добавления кнопки привя жите ранее созданный рабочий процесс без контекста. Ниже пример для кнопки в панели действий:


Одна запись
В любом блоке данных кнопку «Запустить рабочий процесс» можно добавить в панель действий для одной записи, например в формах, строках таблицы, деталях и т.д.:



После добавления кнопки привяжите ранее созданный рабочий процесс:


После этого нажатие этой кнопки будет запускать пользовательское событие:

Несколько записей
v1.6.0+
В панели действий блока таблицы при добавлении кнопки «Запустить рабочий процесс» появляется дополнительная опция выбора типа контекста: «Без контекста» или «Несколько записей»:

Когда выбран «Без контекста», это глобальное событие, и его можно привязывать только к рабочим процессам без контекста.
Когда выбран «Несколько записей», можно привязать рабочий процесс для нескольких записей, который используется для массовых действий после выбора нескольких записей (сейчас поддерживается только в таблицах). Доступные рабочие процессы ограничены теми, что настроены под коллекцию текущего блока данных:

При нажатии кнопки запуска нужно отметить в таблице хотя бы часть строк данных; иначе рабочий процесс не запустится:

Пример
Например, есть коллекция «Образцы». Для образцов со статусом «Собран» нужно предоставить действие «Отправить на инспекцию». Это действие сначала проверяет базовые данные образца, затем создаёт «Запись инспекции» и в конце меняет статус образца на «Отправлен». Такую последовательность сложно реализовать простыми кнопками создания, удаления, обновления и просмотра, поэтому здесь подходит пользовательское событие.
Сначала создайте коллекции «Образцы» и «Записи инспекции», затем внесите базовые тестовые данные в коллекцию «Образцы»:

Затем создайте рабочий процесс типа «Пользовательское событие». Если нужна оперативная обратная связь от процесса операции, можно выбрать синхронный режим (в синхронном режиме нельзя использовать асинхронные узлы, например «Ручная обработка»):

В конф игурации триггера выберите коллекцию «Образцы»:

Выстройте логику процесса в соответствии с бизнес-требованиями. Например, разрешайте отправку на инспекцию только когда параметр индикатора больше 90; иначе показывайте соответствующее сообщение:

Узел «Ответное сообщение» можно использовать в синхронных пользовательских событиях для возврата клиенту сообщения-подсказки. В асинхронном режиме он недоступен.
После настройки и включения рабочего процесса вернитесь в интерфейс таблицы и добавьте кнопку «Запустить рабочий процесс» в колонке действий таблицы:

Далее в меню конфигурации кнопки выберите привязку рабочего процесса и откройте всплывающее окно конфигурации:


