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 PageЗатвердження
Повідомлення про переклад ШІ

Ця документація була автоматично перекладена штучним інтелектом.

#Подія користувацької дії

This feature is provided by the plugin «Робочий процес: Подія користувацької дії»This feature is provided by the commercial plugin «Робочий процес: Подія користувацької дії», please purchase to use

#Вступ

NocoBase має вбудовані стандартні операції з даними (додавання, видалення, оновлення, перегляд тощо). Коли цих операцій недостатньо для складних бізнес-потреб, ви можете використовувати події користувацьких дій у робочому процесі. Прив'язавши таку подію до кнопки "Запустити робочий процес" у блоці сторінки, користувач, натиснувши її, запустить робочий процес користувацької дії.

#Створення робочого процесу

Під час створення робочого процесу оберіть "Подія користувацької дії":

Створення робочого процесу "Подія користувацької дії"

#Налаштування тригера

#Тип контексту

v.1.6.0+

Тип контексту визначає, до кнопок яких блоків може бути прив'язаний робочий процес:

  • Без контексту: це глобальна подія, яку можна прив'язати до кнопок дій на панелі операцій та в блоках даних;
  • Один запис: можна прив'язати до кнопок дій у блоках даних, таких як рядки таблиць, форми та деталі;
  • Кілька записів: можна прив'язати до кнопок масових операцій у таблиці.

Налаштування тригера_Тип контексту

#Колекція

Коли тип контексту — "Один запис" або "Кілька записів", потрібно вибрати колекцію, до якої буде прив'язана модель даних:

Налаштування тригера_Вибір колекції

#Пов'язані дані для використання

Якщо вам потрібно використовувати пов'язані дані рядка, що запускає робочий процес, ви можете вибрати тут поля глибоких зв'язків:

Налаштування тригера_Вибір пов'язаних даних для використання

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

#Налаштування дії

Налаштування кнопок дій у різних блоках відрізняється залежно від типу контексту, налаштованого в робочому процесі.

#Без контексту

v.1.6.0+

На панелі операцій та в інших блоках даних можна додати кнопку "Запустити робочий процес":

Додавання кнопки дії до блоку_Панель операцій

Додавання кнопки дії до блоку_Календар

Додавання кнопки дії до блоку_Діаграма Ганта

Після додавання кнопки прив'яжіть раніше створений робочий процес без контексту. Ось приклад використання кнопки на панелі операцій:

Прив'язка робочого процесу до кнопки_Панель операцій

Вибір робочого процесу для прив'язки_Без контексту

#Один запис

У будь-якому блоці даних до панелі дій для одного запису можна додати кнопку "Запустити робочий процес", наприклад, у формах, рядках таблиць, деталях тощо:

Додавання кнопки дії до блоку_Форма

Додавання кнопки дії до блоку_Рядок таблиці

Додавання кнопки дії до блоку_Деталі

Після додавання кнопки прив'яжіть раніше створений робочий процес:

Прив'язка робочого процесу до кнопки

Вибір робочого процесу для прив'язки

Після цього натискання цієї кнопки запустить подію користувацької дії:

Результат натискання кнопки

#Кілька записів

v.1.6.0+

На панелі дій блоку таблиці, при додаванні кнопки "Запустити робочий процес", з'явиться додаткова опція вибору типу контексту: "Без контексту" або "Кілька записів":

Додавання кнопки дії до блоку_Таблиця

Якщо вибрано "Без контексту", це глобальна подія, і можна прив'язати лише робочі процеси без контексту.

Якщо вибрано "Кілька записів", ви можете прив'язати робочий процес типу "Кілька записів", який можна використовувати для масових операцій після вибору кількох записів (наразі підтримується лише таблицями). У цьому випадку доступні робочі процеси обмежуються тими, що налаштовані для відповідності колекції поточного блоку даних:

Вибір робочого процесу для кількох записів

При натисканні кнопки для запуску, необхідно, щоб у таблиці були відмічені деякі рядки даних; інакше робочий процес не буде запущено:

Попередження про відсутність вибраних рядків

#Приклад

Наприклад, у нас є колекція "Зразки". Для зразків зі статусом "Зібрано" необхідно передбачити дію "Відправити на перевірку". Ця дія спочатку перевірить основну інформацію про зразок, потім створить запис "Запис перевірки" і, нарешті, змінить статус зразка на "Відправлено". Оскільки цю послідовність процесів неможливо виконати простими натисканнями кнопок "додати, видалити, оновити, переглянути", для її реалізації можна використовувати подію користувацької дії.

Спершу створіть колекцію "Зразки" та колекцію "Записи перевірок", а потім введіть деякі базові тестові дані до колекції "Зразки":

Приклад_Колекція "Зразки"

Потім створіть робочий процес "Подія користувацької дії". Якщо вам потрібен швидкий зворотний зв'язок від процесу операції, ви можете вибрати синхронний режим (у синхронному режимі не можна використовувати асинхронні вузли, такі як ручна обробка):

Приклад_Створення робочого процесу

У налаштуваннях тригера для колекції оберіть "Зразки":

Приклад_Налаштування тригера

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

Приклад_Налаштування бізнес-логіки

Порада

Вузол "Повідомлення у відповідь" можна використовувати в синхронних подіях користувацьких дій для повернення повідомлення-підказки клієнту. Його не можна використовувати в асинхронному режимі.

Після налаштування та активації робочого процесу поверніться до інтерфейсу таблиці та додайте кнопку "Запустити робочий процес" у стовпці дій таблиці:

Приклад_Додавання кнопки дії

Потім у меню налаштувань кнопки виберіть прив'язку робочого процесу та відкрийте спливаюче вікно налаштувань:

Приклад_Відкриття спливаючого вікна прив'язки робочого процесу

Додайте раніше активований робочий процес:

Приклад_Вибір робочого процесу

Після підтвердження змініть текст кнопки на назву дії, наприклад, "Відправити на перевірку". Налаштування завершено.

Для використання, оберіть будь-який запис зразка в таблиці та натисніть кнопку "Відправити на перевірку", щоб запустити подію користувацької дії. Згідно з раніше налаштованою логікою, якщо параметр індикатора зразка менший за 90, після натискання з'явиться таке повідомлення:

Приклад_Індикатор не відповідає критеріям відправки на перевірку

Якщо параметр індикатора більший за 90, процес буде виконано нормально, буде створено "Запис перевірки", а статус зразка буде змінено на "Відправлено":

Приклад_Перевірку успішно відправлено

На цьому простий приклад події користувацької дії завершено. Аналогічно, для бізнес-процесів зі складними операціями, такими як обробка замовлень або подання звітів, також можна використовувати події користувацьких дій.

#Зовнішній виклик

Запуск подій користувацьких дій не обмежується діями користувацького інтерфейсу; їх також можна запускати через виклики HTTP API. Зокрема, події користувацьких дій надають новий тип дії для всіх операцій з колекціями для запуску робочих процесів: trigger, який можна викликати за допомогою стандартного API дій NocoBase.

Робочий процес, запущений кнопкою, як у прикладі, можна викликати так:

curl -X POST -H 'Authorization: Bearer <your token>' -H 'X-Role: <roleName>' \
  "http://localhost:3000/api/samples:trigger/<:id>?triggerWorkflows=workflowKey"
Оскільки ця дія призначена для одного запису, при виклику для існуючих даних необхідно вказати ID рядка даних, замінивши частину `<:id>` в URL.

Якщо виклик здійснюється для форми (наприклад, для створення або оновлення), для форми, що створює нові дані, можна не передавати ID, але необхідно передати надіслані дані як контекст виконання:

```bash
curl -X POST -H 'Authorization: Bearer <your token>' -H 'X-Role: <roleName>' -d \
  '{
    "title": "Sample 1",
    "indicator": 91
  }'
  "http://localhost:3000/api/samples:trigger?triggerWorkflows=workflowKey"

Для форми оновлення необхідно передати як ID рядка даних, так і оновлені дані:

curl -X POST -H 'Authorization: Bearer <your token>' -H 'X-Role: <roleName>' -d \
  '{
    "title": "Sample 1",
    "indicator": 91
  }'
  "http://localhost:3000/api/samples:trigger/<:id>?triggerWorkflows=workflowKey"

Якщо передано як ID, так і дані, спочатку буде завантажено рядок даних, що відповідає ID, а потім властивості з переданого об'єкта даних будуть використані для перезапису вихідного рядка даних, щоб отримати остаточний контекст даних тригера.

Примітка

Якщо передаються пов'язані дані, вони також будуть перезаписані. Будьте особливо обережні при обробці вхідних даних, якщо налаштовано попереднє завантаження елементів пов'язаних даних, щоб уникнути небажаного перезапису пов'язаних даних.

Крім того, параметр URL triggerWorkflows є ключем робочого процесу; кілька ключів робочих процесів розділяються комами. Цей ключ можна отримати, навівши курсор миші на назву робочого процесу у верхній частині полотна робочого процесу:

Робочий процес_Ключ_Спосіб перегляду

Після успішного виклику буде запущено подію користувацької дії для відповідної колекції samples.

Порада

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

Якщо вам потрібно запустити подію для даних зв'язку "один до одного" (зв'язок "один до багатьох" наразі не підтримується) у цій дії, ви можете використовувати ! у параметрі, щоб вказати дані тригера поля зв'язку:

curl -X POST -H 'Authorization: Bearer <your token>' -H 'X-Role: <roleName>' \
  "http://localhost:3000/api/posts:trigger/<:id>?triggerWorkflows=workflowKey!category"

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

Порада

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