logologo
スタート
マニュアル
開発
プラグイン
API
ホーム
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
スタート
マニュアル
開発
プラグイン
API
ホーム
logologo
ワークフロー
概要
クイックスタート

トリガー

概要
コレクションイベント
スケジュール
操作前イベント
操作後イベント
カスタムアクションイベント
承認
Webhook

ノード

概要

AI

大規模言語モデル

フロー制御

条件
複数条件分岐
ループ
変数
並列分岐
ワークフローの呼び出し
フロー出力
JSON変数マッピング
遅延
終了

計算

計算
日付計算
JSON計算

データ操作

データ作成
データ更新
データ検索
データ削除
SQL操作

手動処理

手動処理
承認
CC

拡張タイプ

HTTPリクエスト
JavaScriptスクリプト
通知
メール送信
レスポンス
レスポンスメッセージ
変数
実行履歴
バージョン管理
詳細設定

拡張開発

概要
トリガータイプの拡張
ノードタイプの拡張
APIリファレンス
Previous Page操作後イベント
Next Page承認
AI翻訳通知

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

#カスタムアクションイベント

ワークフロー:カスタムアクションイベントCommunity Edition+

#紹介

NocoBaseには一般的なデータ操作(追加、削除、編集、参照など)が組み込まれています。これらの操作では複雑な業務ニーズを満たせない場合、ワークフローでカスタムアクションイベントを使用し、そのイベントをページブロックの「ワークフローをトリガー」ボタンに紐付けることで、ユーザーがクリックした際にカスタムアクションのワークフローをトリガーできます。

#ワークフローの作成

ワークフローを作成する際、「カスタムアクションイベント」を選択します。

「カスタムアクションイベント」ワークフローの作成

#トリガーの設定

#コンテキストタイプ

v1.6.0+

コンテキストタイプによって、そのワークフローをどのブロックのボタンに紐付けられるかが決まります。

  • コンテキストなし:グローバルイベント。操作パネルやデータブロックの操作ボタンに紐付け可能です。
  • 単一レコード:テーブルのデータ行、フォーム、詳細などのデータブロックの操作ボタンに紐付け可能です。
  • 複数レコード:テーブルの一括操作ボタンに紐付け可能です。

トリガー設定_コンテキストタイプ

#コレクション

コンテキストタイプが単一レコードまたは複数レコードの場合、データモデルを紐付けるコレクションを選択する必要があります。

トリガー設定_コレクションの選択

#使用する関連データ

ワークフロー内でトリガーされたデータ行の関連データを使用する必要がある場合、ここで詳細な関連フィールドを選択できます。

トリガー設定_使用する関連データの選択

これらのフィールドは、イベントがトリガーされた後、ワークフローのコンテキストに自動的にプリロードされ、ワークフロー内で利用できるようになります。

#操作の設定

ワークフローで設定されたコンテキストタイプによって、異なるブロックでの操作ボタンの設定も異なります。

#コンテキストなし

v1.6.0+

操作パネルやその他のデータブロックで、「ワークフローをトリガー」ボタンを追加できます。

ブロックへのアクションボタン追加_操作パネル

ブロックへのアクションボタン追加_カレンダー

ブロックへのアクションボタン追加_ガントチャート

ボタンを追加した後、以前作成したコンテキストなしのワークフローを紐付けます。操作パネルのボタンを例に見てみましょう。

ボタンへのワークフロー紐付け_操作パネル

紐付けるワークフローの選択_コンテキストなし

#単一レコード

任意のデータブロックで、単一レコードの操作バーに「ワークフローをトリガー」ボタンを追加できます(フォーム、テーブルのデータ行、詳細など)。

ブロックへのアクションボタン追加_表単

ブロックへのアクションボタン追加_テーブル行

ブロックへのアクションボタン追加_詳細

ボタンを追加した後、以前作成したワークフローを紐付けます。

ボタンへのワークフロー紐付け

紐付けるワークフローの選択

その後、このボタンをクリックすると、カスタムアクションイベントがトリガーされます。

ボタンクリックによるトリガー結果

#複数レコード

v1.6.0+

テーブルブロックの操作バーで「ワークフローをトリガー」ボタンを追加する際、「コンテキストなし」または「複数レコード」を選択する追加オプションがあります。

ブロックへのアクションボタン追加_テーブル

「コンテキストなし」を選択した場合、それはグローバルイベントとなり、コンテキストなしタイプのワークフローのみを紐付けることができます。

「複数レコード」を選択した場合、複数レコードタイプのワークフローを紐付けることができ、複数のレコードを選択した後のバッチ操作(現在はテーブルのみ対応)に使用できます。この際、選択可能なワークフローは、現在のデータブロックのコレクションに一致するように設定されたワークフローに限定されます。

20250215224436

ボタンをクリックしてトリガーする際、テーブル内のデータ行がいくつかチェックされている必要があります。そうでない場合、ワークフローはトリガーされません。

20250215224736

#例

例えば、「サンプル」というコレクションがあるとします。「収集済み」ステータスのサンプルに対して、「送検」という操作を提供したいとします。送検操作では、まずサンプルの基本情報をチェックし、次に「送検記録」データを生成し、最後にサンプルのステータスを「送検済み」に変更します。この一連のプロセスは、単純な「追加、削除、編集、参照」ボタンのクリックだけでは完結できません。こうした場合に、カスタムアクションイベントを利用して実現できます。

まず、「サンプル」コレクションと「送検記録」コレクションを作成し、サンプルコレクションに基本的なテストデータを入力します。

例_サンプルコレクション

次に、「カスタムアクションイベント」ワークフローを作成します。操作プロセスから迅速なフィードバックが必要な場合は、同期モードを選択できます(同期モードでは、手動処理などの非同期タイプのノードは使用できません)。

例_ワークフローの作成

トリガー設定では、コレクションとして「サンプル」を選択します。

例_トリガー設定

ビジネス要件に基づいて、プロセス内のロジックを編成します。例えば、指標パラメーターが90より大きい場合にのみ送検を許可し、そうでない場合は関連する問題を提示するようにします。

例_ビジネスロジックの編成

ヒント

「応答メッセージ」ノードは、同期カスタムアクションイベントで使用でき、クライアントに提示メッセージを返すために利用されます。非同期モードでは使用できません。

ワークフローを設定して有効化した後、テーブル画面に戻り、テーブルの操作列に「ワークフローをトリガー」ボタンを追加します。

例_アクションボタンの追加

次に、ボタンの設定メニューでワークフローの紐付けを選択し、設定ポップアップを開きます。

例_ワークフロー紐付けポップアップを開く

以前有効化したワークフローを追加します。

例_ワークフローの選択

提出後、ボタンのテキストを「送検」などの操作名に変更すれば、設定プロセスは完了です。

使用する際は、テーブル内で任意のサンプルデータを選択し、「送検」ボタンをクリックすると、カスタムアクションイベントがトリガーされます。以前に編成したロジックに従い、サンプルの指標パラメーターが90未満の場合、クリック後に以下のプロンプトが表示されます。

例_指標が送検基準を満たさない

指標パラメーターが90より大きい場合、プロセスは正常に実行され、「送検記録」が生成され、サンプルのステータスは「送検済み」に変更されます。

例_送検成功

これで、簡単なカスタムアクションイベントが完了しました。同様に、注文処理やレポート提出など、複雑な操作を伴うビジネスにおいても、カスタムアクションイベントを利用して実現できます。

#外部呼び出し

カスタムアクションイベントのトリガーは、ユーザーインターフェースの操作に限定されず、HTTP API呼び出しによってもトリガーできます。特に、カスタムアクションイベントは、すべてのコレクション操作に対してワークフローをトリガーする新しい操作タイプ「trigger」を提供しており、NocoBaseの標準アクションAPIを使用して呼び出すことができます。

ヒント

外部呼び出しもユーザーの身元に基づく必要があるため、HTTP APIを介して呼び出す際は、通常のインターフェースから送信されるリクエストと同様に、認証情報を提供する必要があります。これには、Authorizationリクエストヘッダーまたはtokenパラメーター(ログイン時に取得したトークン)、およびX-Roleリクエストヘッダー(ユーザーの現在のロール名)が含まれます。

#コンテキストなし

コンテキストなしのワークフローは、workflowsリソースに対してトリガー操作を行う必要があります。

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

#単一レコード

例で示したボタンによってトリガーされるワークフローは、次のように呼び出すことができます。

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

この操作は単一レコードを対象としているため、既存のデータに対して呼び出す際は、