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Задача по расписанию
Уведомление о переводе ИИ

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

#События коллекции

#Введение

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

#Основное использование

Изменения в коллекции могут происходить в нескольких случаях:

  1. После создания данных.
  2. После обновления данных.
  3. После создания или обновления данных.
  4. После удаления данных.

События коллекции_Выбор момента срабатывания

Вы можете выбрать момент срабатывания триггера в соответствии с вашими бизнес-потребностями. Если выбранный тип изменения включает обновление коллекции, вы также можете указать поля, которые должны измениться. Условие срабатывания будет выполнено только при изменении выбранных полей. Если поля не выбраны, это означает, что изменение любого поля может запустить рабочий процесс.

События коллекции_Выбор измененных полей

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

События коллекции_Настройка условий для данных

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

#Полезные советы

#Запуск массовыми операциями с данными пока не поддерживается

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

#Операции с данными вне приложения не запускают события

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

Кроме того, использование узла SQL-операции для работы с базой данных эквивалентно прямым операциям с базой данных и также не будет запускать события коллекции.

#Внешние источники данных

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

#Пример

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

Сначала создадим коллекции "Товары" и "Заказы" со следующими моделями данных:

Название поляТип поля
Название товараОднострочный текст
ЦенаЧисло
ОстатокЦелое число
Название поляТип поля
Номер заказаАвтоматический номер
Товар заказаМногие к одному (Товары)
Общая сумма заказаЧисло

И добавим базовые данные о товарах:

Название товараЦенаОстаток
iPhone 14 Pro799910
iPhone 13 Pro59990

Затем создадим рабочий процесс, основанный на событии коллекции "Заказы":

События коллекции_Пример_Запуск при создании заказа

Вот несколько параметров конфигурации:

  • Коллекция: Выберите коллекцию "Заказы".
  • Момент срабатывания: Выберите "После создания данных".
  • Условия срабатывания: Оставьте пустым.
  • Предзагрузка связанных данных: Отметьте "Товары".

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

События коллекции_Пример_Оркестрация рабочего процесса создания заказа

Конфигурация узлов будет подробно описана в документации по конкретным типам узлов.

Активируйте этот рабочий процесс и протестируйте его, создав новый заказ через интерфейс. После оформления заказа на "iPhone 14 Pro" остаток соответствующего товара на складе уменьшится до 9. Если же заказ будет оформлен на "iPhone 13 Pro", то из-за недостаточного остатка заказ будет удален.

События коллекции_Пример_Результат выполнения создания заказа