# Глава 7: Рабочие процессы

<iframe  width="800" height="436" src="https://player.bilibili.com/player.html?isOutside=true&aid=113600643469156&bvid=BV1qqidYQER8&cid=27196394345&p=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>

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

### Решение задания из предыдущей главы

Прежде чем начать, освежим в памяти задание из прошлой главы! Мы успешно настроили **права на комментарии** для роли «Партнёр»:

1. **Права на добавление**: пользователь может публиковать комментарии.
2. **Права на просмотр**: пользователь может видеть все комментарии.
3. **Права на редактирование**: пользователь может редактировать только свои комментарии.
4. **Права на удаление**: пользователь может удалять только свои комментарии.

![](https://static-docs.nocobase.com/nocobase_tutorials_zh/202412172247599.gif)

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

![](https://static-docs.nocobase.com/nocobase_tutorials_zh/202412172248463.gif)

---

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

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

### 7.1 Создание рабочего процесса

#### 7.1.1 Создание рабочего процесса в админке

Сначала переключитесь на роль **Root** — это администратор системы со всеми правами. Затем перейдите в [**модуль рабочих процессов**](https://docs-cn.nocobase.com/handbook/workflow).

![](https://static-docs.nocobase.com/nocobase_tutorials_zh/202412172248323.png)

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

- **Название**: Системное уведомление при смене ответственного.
- **Триггер**: выберите «Событие таблицы».

![](https://static-docs.nocobase.com/nocobase_tutorials_zh/202412172248425.png)

#### 7.1.2 Пояснение к выбору типа триггера:

1. [**Событие таблицы**](https://docs-cn.nocobase.com/handbook/workflow/triggers/collection): срабатывает при изменении данных в таблице (добавление, изменение, удаление). Идеально подходит для отслеживания изменений в полях задачи, например смены ответственного.
2. [**Расписание**](https://docs-cn.nocobase.com/handbook/workflow/triggers/schedule): автоматический запуск в заданное время — больше подходит для операций, связанных с расписанием.
3. [**Событие после операции**](https://docs-cn.nocobase.com/handbook/workflow/triggers/post-action): привязывается к кнопке операции, срабатывает после её выполнения. Например, после нажатия кнопки «Сохранить» запускается задача.

В дальнейшем Вы откроете и другие триггеры: «Событие до операции», «Пользовательское событие», «Согласование» и др. — все они подключаются через соответствующие плагины.

В нашем сценарии используем [**Событие таблицы**](https://docs-cn.nocobase.com/handbook/workflow/triggers/collection), чтобы отслеживать изменения «Ответственного» в таблице задач. Сохраните рабочий процесс, нажмите **Конфигурация** и перейдите к настройкам процесса.

![demov3N-37.gif](https://static-docs.nocobase.com/nocobase_tutorials_zh/202412172248988.gif)

---

### 7.2 Настройка узлов рабочего процесса

#### 7.2.1 Настройка условий триггера

Без лишних слов — приступаем к построению автоматического уведомления.

Настроим первый узел и зададим условия запуска процесса.

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

![](https://static-docs.nocobase.com/nocobase_tutorials_zh/202412172249330.gif)

---

#### 7.2.2 Включение канала «Внутренние сообщения»

Далее создадим узел отправки уведомления.

Перед этим создадим [канал «Внутренних сообщений»](https://docs-cn.nocobase.com/handbook/notification-in-app-message) для отправки уведомлений.

- Перейдите в Менеджер плагинов, выберите «Управление уведомлениями» и создайте уведомление о задачах (task_message).
- Канал создан — возвращаемся к рабочему процессу и добавляем узел «Уведомление».
  ![](https://static-docs.nocobase.com/nocobase_tutorials_zh/202412172250497.gif)
- Настройка узла:
  **Канал:** выберите «Уведомление о задачах».
  **Получатель:** выберите «Переменные триггера/Триггерные данные/Ответственный/ID» — так Вы попадёте в нового ответственного.
  **Заголовок сообщения:** «Напоминание о смене ответственного».
  **Текст сообщения:** «Вы назначены новым ответственным за задачу».

После настройки нажмите переключатель в правом верхнем углу, чтобы включить рабочий процесс.

![](https://static-docs.nocobase.com/nocobase_tutorials_zh/202412172250472.gif)

Готово!

#### 7.2.3 Тестирование уведомления

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

![](https://static-docs.nocobase.com/nocobase_tutorials_zh/202412172250461.gif)

![](https://static-docs.nocobase.com/nocobase_tutorials_zh/202412172250998.gif)

---

Так выглядит настройка рабочего процесса. Но работа ещё не закончена:

В сгенерированном уведомлении нужно динамически подставлять информацию о задаче, иначе непонятно, какая задача передана.

### 7.3 Доработка рабочего процесса

#### 7.3.1 Управление версиями

Когда Вы вернётесь к настройке рабочего процесса, окажется, что UI стал серым и недоступен для редактирования.

Не волнуйтесь: нажмите на «троеточие» в правом верхнем углу > [**Скопировать в новую версию**](https://docs-cn.nocobase.com/handbook/workflow/advanced/revisions) — Вы попадёте на страницу настройки новой версии. Старая версия сохранится: нажав кнопку **Версии**, Вы можете в любой момент переключиться на историческую (внимание: версии, которые уже выполнялись, изменять нельзя!).

![](https://static-docs.nocobase.com/nocobase_tutorials_zh/202412172251594.gif)

#### 7.3.2 Улучшение содержимого уведомления

Сделаем уведомление персонализированным и добавим детали о передаче.

- **Отредактируйте узел уведомления.**

Замените текст сообщения на: «По задаче «【Название задачи】» ответственный изменён на: 【Псевдоним ответственного】»

- Справа в редакторе нажмите кнопку «Переменные» и подставьте название задачи и ответственного.
- Затем включите эту версию через переключатель в правом верхнем углу.

![](https://static-docs.nocobase.com/nocobase_tutorials_zh/202412172251780.gif)

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

![](https://static-docs.nocobase.com/nocobase_tutorials_zh/202412172251734.gif)

---

### Итог

Великолепно! Вы создали автоматизированный рабочий процесс на основе изменения ответственного за задачу. Это не только экономит ручные действия, но и повышает эффективность совместной работы. К этому моменту наша система управления задачами обладает мощной функциональностью.

---

### Заключение и перспективы

К этому моменту Вы с нуля построили полноценную систему управления задачами, охватывающую создание задач, комментарии, настройку ролей и прав, рабочие процессы и системные уведомления.

Гибкость и расширяемость NocoBase открывают перед Вами безграничные возможности: в дальнейшем Вы можете глубже изучать другие плагины, создавать кастомные функции или строить более сложную бизнес-логику. После этого учебника Вы уже владеете базовыми приёмами и ключевыми концепциями NocoBase.

С нетерпением ждём Ваших новых идей! Если возникнут вопросы — обратитесь к [официальной документации NocoBase](https://docs-cn.nocobase.com/) или присоединяйтесь к [сообществу NocoBase](https://forum.nocobase.com/).

Продолжайте исследовать и создавать без ограничений!
