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スクリプト
通知
メール送信
レスポンス
レスポンスメッセージ
変数
実行履歴
バージョン管理
詳細設定

拡張機能開発

概要
拡張トリガータイプ
拡張ノードタイプ
APIリファレンス
Previous Page概要
Next Page定期タスク
TIP

このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください

#コレクションイベント

#はじめに

コレクションイベントタイプのトリガーは、コレクションに対するデータの作成、更新、削除イベントを監視します。コレクションに対してデータ操作が発生し、設定された条件を満たした場合に、対応するワークフローがトリガーされます。例えば、新規注文作成後に商品の在庫を減らしたり、新しいコメントが追加された後に手動レビューを待ったりするようなシナリオで活用できます。

#基本的な使い方

コレクションの変更には、いくつかの種類があります。

  1. データの作成後
  2. データの更新後
  3. データの作成または更新後
  4. データの削除後

コレクションイベント_トリガータイミングの選択

ビジネス要件に応じて、トリガーのタイミングを選択できます。変更の種類としてコレクションの更新が含まれる場合、変更されたフィールドを限定することも可能です。選択されたフィールドが変更された場合にのみトリガー条件が満たされ、フィールドを選択しない場合は、すべてのフィールドの変更がトリガーの対象となります。

コレクションイベント_変更されたフィールドの選択

さらに詳細な設定として、トリガーされるデータ行の各フィールドに対して条件ルールを設定し、そのフィールドが対応する条件を満たした場合にのみトリガーを実行することも可能です。

コレクションイベント_データ条件の設定

コレクションイベントがトリガーされると、イベントを生成したデータ行がトリガーコンテキストデータとして実行プランに注入され、後続のワークフローノードで変数として利用できるようになります。ただし、後続のノードでこのデータの関連フィールドを使用したい場合は、事前に関連データのプリロードを設定する必要があります。選択された関連データは、トリガー後にコンテキストに一緒に注入され、階層的に選択して使用することが可能です。

#関連情報

#一括データ操作によるトリガーは現在サポートされていません

コレクションイベントは現在、一括データ操作によるトリガーをサポートしていません。例えば、記事データを作成する際に、同時にその記事に複数のタグデータ(多対一関係データ)を追加した場合、記事の新規作成に関するワークフローのみがトリガーされ、同時に追加された複数のタグはタグの新規作成に関するワークフローをトリガーしません。また、多対多関係データの関連付けや新規追加時も、中間コレクションのワークフローはトリガーされません。

#アプリケーション外のデータ操作ではトリガーされません

HTTP API を介してアプリケーションのインターフェースを呼び出し、コレクションを操作した場合も対応するイベントをトリガーできます。しかし、NocoBase アプリケーションを介さず、データベース操作によって直接データが変更された場合は、対応するイベントはトリガーされません。例えば、データベース本来のトリガーは、アプリケーション内のワークフローとは関連付けられません。

また、SQL 操作ノードを使用してデータベースを操作することは、データベースを直接操作することに相当するため、コレクションイベントはトリガーされません。

#外部データソース

ワークフローはバージョン 0.20 から外部データソースをサポートしています。外部データソースプラグインを使用しており、コレクションイベントが外部データソースに対して設定されている場合、そのデータソースに対するデータ操作がアプリケーション内で完結している限り(ユーザーによる新規作成、更新、ワークフローによるデータ操作など)、対応するコレクションイベントをトリガーできます。ただし、データ変更が他のシステムを介して、または外部データベース内で直接行われた場合は、コレクションイベントはトリガーされません。

#例

新規注文作成後に合計金額を計算し、在庫を減らすシナリオを例に見てみましょう。

まず、商品コレクションと注文コレクションを作成します。データモデルは以下の通りです。

フィールド名フィールドタイプ
商品名称単一行テキスト
価格数値
在庫整数
フィールド名フィールドタイプ
注文ID自動採番
注文商品多対一(商品)
注文合計数値

そして、基本的な商品データを追加します。

商品名称価格在庫
iPhone 14 Pro799910
iPhone 13 Pro59990

次に、注文コレクションイベントに基づいたワークフローを作成します。

コレクションイベント_例_新規注文トリガー

いくつかの設定項目は以下の通りです。

  • コレクション:「注文」コレクションを選択します。
  • トリガータイミング:「データの作成後」を選択します。
  • トリガー条件:空欄にします。
  • 関連データのプリロード:「商品」にチェックを入れます。

その後、ワークフローのロジックに従って他のノードを設定します。具体的には、商品の在庫が0より大きいかを確認し、0より大きければ在庫を減らし、そうでなければ注文を無効として削除します。

コレクションイベント_例_新規注文ワークフローのオーケストレーション

ノードの設定については、各ノードタイプの紹介ドキュメントで詳しく説明します。

このワークフローを有効にし、インターフェースから新規注文を作成してテストしてみましょう。「iPhone 14 Pro」を注文すると、対応する商品の在庫は9に減ります。一方、「iPhone 13 Pro」を注文した場合、在庫不足のため注文は削除されます。

コレクションイベント_例_新規注文実行結果