このドキュメントはAIによって翻訳されました。正確な情報については英語版をご参照ください。
NocoBaseには一般的なデータ操作(追加、削除、編集、参照など)が組み込まれています。これらの操作では複雑な業務ニーズを満たせない場合、ワークフローでカスタムアクションイベントを使用し、そのイベントをページブロックの「ワークフローをトリガー」ボタンに紐付けることで、ユーザーがクリックした際にカスタムアクションのワークフローをトリガーできます。
ワークフローを作成する際、「カスタムアクションイベント」を選択します。

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

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

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

これらのフィールドは、イベントがトリガーされた後、ワークフローのコンテキストに自動的にプリロードされ、ワークフロー内で利用できるようになります。
ワークフローで設定されたコンテキストタイプによって、異なるブロックでの操作ボタンの設定も異なります。
v1.6.0+
操作パネルやその他のデータブロックで、「ワークフローをトリガー」ボタンを追加できます。



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


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



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


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

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

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

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

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

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

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

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

「応答メッセージ」ノードは、同期カスタムアクションイベントで使用でき、クライアントに提示メッセージを返すために利用されます。非同期モードでは使用できません。
ワークフローを設定して有効化した後、テーブル画面に戻り、テーブルの操作列に「ワークフローをトリガー」ボタンを追加します。

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

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

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

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

これで、簡単なカスタムアクションイベントが完了しました。同様に、注文処理やレポート提出など、複雑な操作を伴うビジネスにおいても、カスタムアクションイベントを利用して実現できます。
カスタムアクションイベントのトリガーは、ユーザーインターフェースの操作に限定されず、HTTP API呼び出しによってもトリガーできます。特に、カスタムアクションイベントは、すべてのコレクション操作に対してワークフローをトリガーする新しい操作タイプ「trigger」を提供しており、NocoBaseの標準アクションAPIを使用して呼び出すことができます。
外部呼び出しもユーザーの身元に基づく必要があるため、HTTP APIを介して呼び出す際は、通常のインターフェースから送信されるリクエストと同様に、認証情報を提供する必要があります。これには、Authorizationリクエストヘッダーまたはtokenパラメーター(ログイン時に取得したトークン)、およびX-Roleリクエストヘッダー(ユーザーの現在のロール名)が含まれます。
コンテキストなしのワークフローは、workflowsリソースに対してトリガー操作を行う必要があります。
例で示したボタンによってトリガーされるワークフローは、次のように呼び出すことができます。
この操作は単一レコードを対象としているため、既存のデータに対して呼び出す際は、