Глава 7: Рабочие процессы
Поздравляем — Вы дошли до этой главы! В ней мы познакомимся с мощной функциональностью рабочих процессов NocoBase. С её помощью Вы сможете автоматизировать действия в системе, экономить время и повышать эффективность.
Решение задания из предыдущей главы
Прежде чем начать, освежим в памяти задание из прошлой главы! Мы успешно настроили права на комментарии для роли «Партнёр»:
- Права на добавление: пользователь может публиковать комментарии.
- Права на просмотр: пользователь может видеть все комментарии.
- Права на редактирование: пользователь может редактировать только свои комментарии.
- Права на удаление: пользователь может удалять только свои комментарии.

Так Tom может свободно публиковать комментарии и видеть комментарии других, при этом редактировать и удалять может только свои.

Теперь реализуем автоматизацию: каждый раз, когда меняется ответственный за задачу, система автоматически отправляет уведомление новому ответственному с напоминанием о принятой задаче.
Рабочие процессы: плагин рабочих процессов — это мощный инструмент автоматизации, часто встречающийся в области управления бизнес-процессами (BPM).
Он используется для проектирования и оркестрации бизнес-процессов на основе моделей данных: с помощью триггеров и узлов потока процессы можно автоматизировать. Особенно подходит для повторяющихся, управляемых данными задач.
7.1 Создание рабочего процесса
7.1.1 Создание рабочего процесса в админке
Сначала переключитесь на роль Root — это администратор системы со всеми правами. Затем перейдите в модуль рабочих процессов.

Нажмите кнопку «Добавить» в правом верхнем углу и создайте новый рабочий процесс с базовыми параметрами:
- Название: Системное уведомление при смене ответственного.
- Триггер: выберите «Событие таблицы».

7.1.2 Пояснение к выбору типа триггера:
- Событие таблицы: срабатывает при изменении данных в таблице (добавление, изменение, удаление). Идеально подходит для отслеживания изменений в полях задачи, например смены ответственного.
- Расписание: автоматический запуск в заданное время — больше подходит для операций, связанных с расписанием.
- Событие после операции: привязывается к кнопке операции, срабатывает после её выполнения. Например, после нажатия кнопки «Сохранить» запускается задача.
В дальнейшем Вы откроете и другие триггеры: «Событие до операции», «Пользовательское событие», «Согласование» и др. — все они подключаются через соответствующие плагины.
В нашем сценарии используем Событие таблицы, чтобы отслеживать изменения «Ответственного» в таблице задач. Сохраните рабочий процесс, нажмите Конфигурация и перейдите к настройкам процесса.

7.2 Настройка узлов рабочего процесса
7.2.1 Настройка условий триггера
Без лишних слов — приступаем к построению автоматического уведомления.
Настроим первый узел и зададим условия запуска процесса.
- Таблица: выберите «Таблица задач». (Какая таблица запускает процесс — её данные будут синхронно подгружены в процесс. Логично, что мы хотим запускать процесс именно при изменениях в таблице задач.)
- Момент срабатывания: выберите «После добавления или обновления данных».
- Поля-триггеры: выберите «Ответственный».
- Условия срабатывания: выберите «ID ответственного существует» — так мы запустим уведомление только тогда, когда у задачи действительно есть назначенный ответственный.
- Предзагружаемые данные: выберите «Ответственный», чтобы использовать его данные далее по процессу.

7.2.2 Включение канала «Внутренние сообщения»
Далее создадим узел отправки уведомления.
Перед этим создадим канал «Внутренних сообщений» для отправки уведомлений.
- Перейдите в Менеджер плагинов, выберите «Управление уведомлениями» и создайте уведомление о задачах (task_message).
- Канал создан — возвращаемся к рабочему процессу и добавляем узел «Уведомление».

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

Готово!
7.2.3 Тестирование уведомления
Долгожданный момент: вернитесь на страницу, откройте редактирование любой задачи, поменяйте ответственного и нажмите «Отправить» — система отправила уведомление!


Так выглядит настройка рабочего процесса. Но работа ещё не закончена:
В сгенерированном уведомлении нужно динамически подставлять информацию о задаче, иначе непонятно, какая задача передана.
7.3 Доработка рабочего процесса
7.3.1 Управление версиями
Когда Вы вернётесь к настройке рабочего процесса, окажется, что UI стал серым и недоступен для редактирования.
Не волнуйтесь: нажмите на «троеточие» в правом верхнем углу > Скопировать в новую версию — Вы попадёте на с траницу настройки новой версии. Старая версия сохранится: нажав кнопку Версии, Вы можете в любой момент переключиться на историческую (внимание: версии, которые уже выполнялись, изменять нельзя!).

7.3.2 Улучшение содержимого уведомления
Сделаем уведомление персонализированным и добавим детали о передаче.
- Отредактируйте узел уведомления.
Замените текст сообщения на: «По задаче «【Название задачи】» ответственный изменён на: 【Псевдоним ответственного】»
- Справа в редакторе нажмите кнопку «Переменные» и подставьте название задачи и ответственного.
- Затем включите эту версию через переключатель в правом верхнем углу.

После включения новой версии при повторном тесте система отображает в уведомлении название новой задачи.

Итог
Великолепно! Вы создали автоматизированный рабочий процесс на основе изменения ответственного за задачу. Это не только экономит ручные действия, но и повышает эффективность совместной работы. К этому моменту наша система управления задачами обладает мощной функциональностью.
Заключение и перспективы
К этому моменту Вы с нуля построили полноценную систему управления задачами, охватывающую создание задач, комментарии, настройку ролей и прав, рабочие процессы и системные уведомления.
Гибкость и расширяемость NocoBase открывают перед Вами безграничные возможности: в дальнейшем Вы можете глубже изучать другие плагины, создавать кастомные функции или строить более сложную бизнес-логику. После этого учебника Вы уже владеете базовыми приёмами и ключевыми концепциями NocoBase.
С нетерпением ждём Ваших новых идей! Если возникнут вопросы — обратитесь к официальной документации NocoBase или присоединяйтесь к сообществу NocoBase.
Продолжайте исследовать и создавать без ограничений!

