logologo
Начало
Руководство
Разработка
Плагины
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Начало
Руководство
Разработка
Плагины
API
logologo
Рабочие процессы
Обзор
Быстрый старт

Триггер

Обзор
Событие таблицы данных
Задача по расписанию
Событие перед действием
Событие после действия
Пользовательское событие действия
Согласование
Webhook

Узел

Обзор

Искусственный интеллект (AI)

Большая языковая модель (LLM)

Управление потоком

Условие
Ветвление по условиям
Цикл
Переменная
Параллельное ветвление
Вызов рабочего процесса
Вывод потока
Сопоставление переменных JSON
Задержка
Завершение

Вычисление

Вычисление
Вычисление даты
Вычисление JSON

Операции с данными

Добавление данных
Обновление данных
Запрос данных
Удаление данных
Операция SQL

Ручная обработка

Ручная обработка
Согласование
Копия (CC)

Расширенные типы

HTTP-запрос
Скрипт JavaScript
Уведомление
Отправка email
Ответ
Сообщение ответа
Переменная
Журнал выполнения
Управление версиями
Расширенные параметры

Разработка расширений

Обзор
Расширенные типы триггеров
Расширенные типы узлов
Справочник API
Previous PageПользовательское событие действия
Next PageWebhook
Уведомление о переводе ИИ

Эта документация была автоматически переведена ИИ.

#Согласование

This feature is provided by the commercial plugin «Рабочий процесс: Утверждение», please purchase to use

#Введение

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

Плагин согласования предоставляет специализированный тип рабочего процесса (триггер) «Согласование (событие)» и специальный узел «Согласование» для этого рабочего процесса. В сочетании с уникальными пользовательскими коллекциями и пользовательскими блоками NocoBase вы можете быстро и гибко создавать и управлять различными сценариями согласования.

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

При создании рабочего процесса выберите тип «Согласование», чтобы создать рабочий процесс согласования:

Триггер согласования_Создание рабочего процесса согласования

Затем в интерфейсе настройки рабочего процесса нажмите на триггер, чтобы открыть диалоговое окно для дальнейшей настройки.

#Настройка триггера

#Привязка коллекции

Плагин согласования NocoBase разработан с учетом гибкости и может использоваться с любой пользовательской коллекцией. Это означает, что для настройки согласования не требуется повторно конфигурировать модель данных; вместо этого напрямую используется существующая коллекция. Поэтому после входа в настройки триггера вам сначала нужно выбрать коллекцию, чтобы определить, при создании или обновлении данных какой коллекции будет запускаться этот рабочий процесс:

Триггер согласования_Настройка триггера_Выбор коллекции

Затем в форме создания (или редактирования) данных для соответствующей коллекции привяжите этот рабочий процесс к кнопке отправки:

Инициировать согласование_Привязать рабочий процесс

После этого, когда пользователь отправляет эту форму, будет запущен соответствующий рабочий процесс согласования. Отправленные данные не только сохраняются в соответствующей коллекции, но и создается их снимок в потоке согласования для последующего просмотра и использования утверждающими.

#Отзыв

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

Триггер согласования_Настройка триггера_Разрешить отзыв

После включения согласование, инициированное этим рабочим процессом, может быть отозвано инициатором до того, как его обработает любой утверждающий. Однако после того, как его обработает любой утверждающий в последующем узле согласования, оно больше не может быть отозвано.

Примечание

После включения или удаления кнопки отзыва вам необходимо нажать «Сохранить» и «Отправить» в диалоговом окне настройки триггера, чтобы изменения вступили в силу.

#Настройка интерфейса формы инициатора

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

Триггер согласования_Настройка триггера_Форма инициатора

Вы можете добавить форму для интерфейса инициатора на основе привязанной коллекции, или добавить описательный текст (Markdown) для подсказок и руководства. Форма является обязательной; в противном случае инициатор не сможет выполнять никаких действий после входа в этот интерфейс.

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

Триггер согласования_Настройка триггера_Форма инициатора_Настройка полей

В дополнение к кнопке прямой отправки вы также можете добавить кнопку действия «Сохранить как черновик» для поддержки процесса временного сохранения:

Триггер согласования_Настройка триггера_Форма инициатора_Настройка действий

#Узел согласования

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

#Настройка инициирования согласования

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

Инициировать согласование_Привязать рабочий процесс

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

Примечание

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

#Центр задач

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

20250310161203

#Мои отправления

#Просмотр отправленных согласований

20250310161609

#Непосредственное инициирование нового согласования

20250310161658

#Мои задачи

#Список задач

20250310161934

#Детали задачи

20250310162111

#HTTP API

#Инициатор

#Инициирование из коллекции

Для инициирования из блока данных вы можете выполнить вызов следующим образом (на примере кнопки создания коллекции posts):

curl -X POST -H 'Authorization: Bearer <your token>' -H 'X-Role: <roleName>' -d \
  '{
    "title": "Hello, world!",
    "content": "This is a test post."
  }'
  "http://localhost:3000/api/posts:create?triggerWorkflows=workflowKey"

Здесь параметр URL triggerWorkflows — это ключ рабочего процесса; несколько ключей рабочих процессов разделяются запятыми. Этот ключ можно получить, наведя курсор мыши на имя рабочего процесса в верхней части холста рабочего процесса:

Рабочий процесс_Ключ_Метод просмотра

После успешного вызова будет запущен рабочий процесс согласования для соответствующей коллекции posts.

Примечание

Поскольку внешние вызовы также должны основываться на идентификации пользователя, при вызове через HTTP API, как и при запросах, отправляемых из обычного интерфейса, необходимо предоставить информацию для аутентификации, включая заголовок запроса Authorization или параметр token (токен, полученный при входе в систему), а также заголовок запроса X-Role (текущее имя роли пользователя).

Если вам нужно запустить событие для данных, связанных по принципу «один к одному» (связь «один ко многим» пока не поддерживается), вы можете использовать ! в параметре, чтобы указать данные для запуска по полю связи:

curl -X POST -H 'Authorization: Bearer <your token>' -H 'X-Role: <roleName>' -d \
  '{
    "title": "Hello, world!",
    "content": "This is a test post.",
    "category": {
      "title": "Test category"
    }
  }'
  "http://localhost:3000/api/posts:create?triggerWorkflows=workflowKey!category"

После успешного вызова будет запущено событие согласования для соответствующей коллекции categories.

Примечание

При запуске события после действия через HTTP API также необходимо обращать внимание на статус включения рабочего процесса и на то, соответствует ли конфигурация коллекции; в противном случае вызов может не завершиться успешно или может возникнуть ошибка.

#Инициирование из Центра согласования

curl -X POST -H 'Authorization: Bearer <your token>' -H 'X-Role: <roleName>' -d \
  '{
    "collectionName": "<collection name>",
    "workflowId": <workflow id>,
    "data": { "<field>": "<value>" },
    "status": <initial approval status>,
  }'
  "http://localhost:3000/api/approvals:create"

Параметры

  • collectionName: Имя целевой коллекции для инициирования согласования. Обязательный параметр.
  • workflowId: ID рабочего процесса, используемого для инициирования согласования. Обязательный параметр.
  • data: Поля записи коллекции, создаваемой при инициировании согласования. Обязательный параметр.
  • status: Статус записи, создаваемой при инициировании согласования. Обязательный параметр. Возможные значения:
    • 0: Черновик, означает сохранение без отправки на согласование.
    • 1: Отправить на согласование, означает, что инициатор отправляет запрос на согласование, который поступает в рабочий процесс согласования.

#Сохранить и отправить

Когда инициированное (или отозванное) согласование находится в статусе черновика, вы можете сохранить или отправить его снова через следующий API:

curl -X POST -H 'Authorization: Bearer <your token>' -H 'X-Role: <roleName>' -d \
  '{
    "data": { "<field>": "<value>" },
    "status": 2
  }'
  "http://localhost:3000/api/approvals:update/<approval id>"

#Получить список отправленных согласований

curl -X GET -H 'Authorization: Bearer <your token>' -H 'X-Role: <roleName>' \
  "http://localhost:3000/api/approvals:listMine"

#Отзыв

Инициатор может отозвать запись, находящуюся в процессе согласования, через следующий API:

curl -X POST -H 'Authorization: Bearer <your token>' -H 'X-Role: <roleName>' -d \
  "http://localhost:3000/api/approvals:withdraw/<approval id>"

Параметры

  • <approval id>: ID записи согласования, которую необходимо отозвать. Обязательный параметр.

#Утверждающий

После того как рабочий процесс согласования переходит в узел согласования, для текущего утверждающего создается задача. Утверждающий может выполнить задачу согласования через интерфейс или с помощью вызова HTTP API.

#Получить записи обработки согласования

Задачи — это записи обработки согласования. Вы можете получить все записи обработки согласования текущего пользователя через следующий API:

curl -X GET -H 'Authorization: Bearer <your token>' \
  "http://localhost:3000/api/approvalRecords:listMine"

Здесь approvalRecords является ресурсом коллекции, поэтому вы можете использовать общие условия запроса, такие как filter, sort, pageSize и page.

#Получить одну запись обработки согласования

curl -X GET -H 'Authorization: Bearer <your token>' \
  "http://localhost:3000/api/approvalRecords:get/<record id>"

#Одобрить и отклонить

curl -X POST -H 'Authorization: Bearer <your token>' -d \
  '{
    "status": 2,
    "comment": "Looks good to me.",
    "data": { "<field to modify>": "<value>" }
  }'
  "http://localhost:3000/api/approvalRecords:submit/<record id>"

Параметры

  • <record id>: ID записи, подлежащей обработке согласования. Обязательный параметр.
  • status: Статус процесса согласования. 2 означает «Одобрить», -1 означает «Отклонить». Обязательный параметр.
  • comment: Комментарий к обработке согласования. Необязательный параметр.
  • data: Изменения записи коллекции в текущем узле согласования после одобрения. Необязательный параметр (действителен только при одобрении).

#Возврат v1.9.0+

До версии v1.9.0 возврат использовал тот же API, что и «Одобрить» и «Отклонить», при этом "status": 1 означал возврат.

Начиная с версии v1.9.0, для возврата появился отдельный API:

curl -X POST -H 'Authorization: Bearer <your token>' -d \
  '{
    "returnToNodeKey": "<node key>",
  }'
  "http://localhost:3000/api/approvalRecords:return/<record id>"

Параметры

  • <record id>: ID записи, подлежащей обработке согласования. Обязательный параметр.
  • returnToNodeKey: Ключ целевого узла для возврата. Необязательный параметр. Если в узле настроен диапазон узлов, к которым можно вернуться, этот параметр можно использовать для указания, к какому узлу вернуться. Если не настроено, этот параметр не требуется передавать, и по умолчанию будет выполнен возврат к начальной точке для повторной отправки инициатором.

#Делегировать

curl -X POST -H 'Authorization: Bearer <your token>' -d \
  '{
    "assignee": <user id>,
  }'
  "http://localhost:3000/api/approvalRecords:delegate/<record id>"

Параметры

  • <record id>: ID записи, подлежащей обработке согласования. Обязательный параметр.
  • assignee: ID пользователя, которому делегируется задача. Обязательный параметр.

#Добавить подписанта

curl -X POST -H 'Authorization: Bearer <your token>' -d \
  '{
    "assignees": [<user id>],
    "order": <order>,
  }'
  "http://localhost:3000/api/approvalRecords:add/<record id>"

Параметры

  • <record id>: ID записи, подлежащей обработке согласования. Обязательный параметр.
  • assignees: Список ID пользователей для добавления в качестве подписантов. Обязательный параметр.
  • order: Порядок добавленного подписанта. -1 означает «до меня», 1 означает «после меня».