---
pkg: '@nocobase/plugin-workflow-approval'
---

# 承認

## 紹介

承認ワークフローでは、承認者が申請された承認を処理（承認、拒否、または差し戻し）するための操作ロジックを設定するために、専用の「承認」ノードが必要です。「承認」ノードは承認プロセス内でのみ使用できます。

:::info{title=ヒント}
通常の「手動処理」ノードとの違い：通常の「手動処理」ノードは、より汎用的なシナリオに対応しており、さまざまな種類のワークフローで手動データ入力やプロセスの継続判断などに使用できます。「承認」ノードは承認プロセス専用の処理ノードであり、申請された承認データのみを処理し、他のワークフローでは使用できません。
:::

## ノードの作成

プロセス内のプラス（「+」）ボタンをクリックして「承認」ノードを追加し、いずれかの通過モードを選択して承認ノードを作成します。

![承認ノード_作成](https://static-docs.nocobase.com/20251107000938.png)

## ノード設定

### 通過モード

通過モードには2種類あります。

1.  直通モード：通常、シンプルなプロセスで使用されます。承認ノードが通過するかどうかがプロセスの終了を決定し、通過しなかった場合は直接プロセスを終了します。

    ![承認ノード_通過モード_直通モード](https://static-docs.nocobase.com/20251107001043.png)

2.  分岐モード：通常、より複雑なデータロジックで使用されます。承認ノードが何らかの結果を生成した後、その結果分岐内で他のノードの実行を続行できます。

    ![承認ノード_通過モード_分岐モード](https://static-docs.nocobase.com/20251107001234.png)

    このノードが「承認」された後、承認分岐の実行に加えて、後続のプロセスも続行されます。「拒否」操作後も、デフォルトでは後続のプロセスを続行できますが、ノードで分岐の実行後にプロセスを終了するように設定することも可能です。

:::info{title=ヒント}
通過モードはノード作成後に変更することはできません。
:::

### 承認者

承認者は、このノードの承認行為を担当するユーザーの集合です。1人または複数のユーザーを設定でき、ユーザーリストから選択する静的な値、または変数によって指定される動的な値のいずれかを指定できます。

![承認ノード_承認者](https://static-docs.nocobase.com/20251107001433.png)

変数を選択する場合、コンテキストおよびノード結果内のユーザーデータの主キーまたは外部キーのみを選択できます。選択された変数が実行時に配列（対多関係）である場合、配列内の各ユーザーは承認者全体の集合にマージされます。

ユーザーまたは変数を直接選択する以外に、ユーザーコレクションのクエリ条件に基づいて、条件に合致するユーザーを動的にフィルタリングして承認者とすることもできます。

![20251107001703](https://static-docs.nocobase.com/20251107001703.png)

### 承認方式

最終実行時に承認者が1人の場合（複数の変数を重複排除した後のケースを含む）、どの承認方式を選択しても、そのユーザーのみが承認操作を実行し、結果もそのユーザーのみによって決定されます。

承認者の集合に複数のユーザーがいる場合、異なる承認方式を選択すると、異なる処理方法が適用されます。

1. 或签（Anyone）：いずれか1人が承認すればノードは通過し、全員が拒否した場合にのみノードは拒否されます。
2. 会签（Countersign）：全員が承認した場合にのみノードは通過し、いずれか1人が拒否しただけでノードは拒否されます。
3. 投票（Vote）：設定された割合を超える人数の承認があった場合にのみノードは通過し、それ以外の場合は拒否されます。

差し戻し操作に関しては、どのモードでも、承認者集合内のいずれかのユーザーが差し戻しとして処理した場合、ノードは直接プロセスを終了します。

### 処理順序

同様に、承認者集合に複数のユーザーがいる場合、異なる処理順序を選択すると、異なる処理方法が適用されます。

1. 並行：すべての承認者は任意の順序で処理でき、処理の前後関係は関係ありません。
2. 順次：承認者は承認者集合内の順序に従って順番に処理します。前の承認者が提出した後でなければ、次の承認者は処理できません。

「順次」処理に設定されているかどうかにかかわらず、実際の処理順序に基づいて生成される結果も、上記の「承認方式」のルールに従います。対応する条件が満たされると、このノードの実行は完了します。

### 拒否分岐の終了後にワークフローを終了

「通過モード」が「分岐モード」に設定されている場合、拒否分岐の終了後にワークフローを終了することを選択できます。このオプションをチェックすると、拒否分岐の末尾に「✗」が表示され、この分岐の終了後に後続のノードが続行されないことを示します。

![承認ノード_拒否後終了](https://static-docs.nocobase.com/20251107001839.png)

### 承認者インターフェース設定

承認者インターフェース設定は、承認ワークフローがこのノードに到達した際に、承認者向けの操作インターフェースを提供するために使用されます。設定ボタンをクリックすると、ポップアップウィンドウが開きます。

![承認ノード_インターフェース設定_ポップアップ](https://static-docs.nocobase.com/20251107001958.png)

設定ポップアップでは、申請内容、承認情報、処理フォーム、カスタムヒントテキストなどのブロックを追加できます。

![承認ノード_インターフェース設定_ブロック追加](https://static-docs.nocobase.com/20251107002604.png)

#### 申請内容

承認内容詳細ブロックは、申請者が提出したデータブロックです。通常のデータブロックと同様に、コレクションのフィールドコンポーネントを自由に追加し、承認者が見るべき内容を整理するために自由に配置できます。

![承認ノード_インターフェース設定_詳細ブロック](https://static-docs.nocobase.com/20251107002925.png)

#### 処理フォーム

操作フォームブロックには、このノードがサポートする操作ボタンを追加できます。これには「承認」、「拒否」、「差し戻し」、「転送」、および「追加承認」が含まれます。

![承認ノード_インターフェース設定_操作フォームブロック](https://static-docs.nocobase.com/20251107003015.png)

さらに、操作フォームには承認者が変更可能なフィールドを追加することもできます。これらのフィールドは、承認者が承認を処理する際に操作フォームに表示され、承認者はこれらのフィールドの値を変更できます。提出後、承認に使用されるデータと、承認プロセス内の対応するデータのスナップショットが同時に更新されます。

![承認ノード_インターフェース設定_操作フォーム_承認内容フィールド変更](https://static-docs.nocobase.com/20251107003206.png)

#### 「承認」と「拒否」

承認操作ボタンのうち、「承認」と「拒否」は決定的な操作です。提出後、承認者によるこのノードの処理は完了します。提出時に記入が必要な追加フィールドは、操作ボタンの「処理設定」ポップアップで追加できます（例：「コメント」など）。

![承認ノード_インターフェース設定_操作フォーム_処理設定](https://static-docs.nocobase.com/20251107003314.png)

#### 「差し戻し」

「差し戻し」も決定的な操作です。コメントを設定できるだけでなく、差し戻し可能なノードも設定できます。

![20251107003555](https://static-docs.nocobase.com/20251107003555.png)

#### 「転送」と「追加承認」

「転送」と「追加承認」は非決定的な操作で、承認プロセス中の承認者を動的に調整するために使用されます。「転送」は現在のユーザーの承認タスクを別のユーザーに代理で処理させることであり、「追加承認」は現在の承認者の前または後に承認者を追加し、新しく追加された承認者とともに承認を続行することです。

「転送」または「追加承認」操作ボタンを有効にした後、ボタンの設定メニューで「指派人員範囲」を選択し、新しい承認者を割り当て可能な範囲を設定する必要があります。

![承認ノード_インターフェース設定_操作フォーム_指派人員範囲](https://static-docs.nocobase.com/20241226232321.png)

ノードの元の承認者設定と同様に、指派人員範囲は直接選択された承認者、またはユーザーコレクションのクエリ条件に基づくものでも構いません。最終的には1つの集合にマージされ、すでに承認者集合に含まれているユーザーは含まれません。

:::warning{title=重要}
いずれかの操作ボタンを有効または無効にした場合、または指派人員範囲を変更した場合は、操作インターフェース設定のポップアップを閉じた後、そのノードの設定を保存する必要があります。そうしないと、その操作ボタンの変更は有効になりません。
:::

### 「マイ承認」カード <Badge>2.0+</Badge>

待機センターの「マイ承認」リスト内のタスクカードを設定するために使用できます。

![20260214141554](https://static-docs.nocobase.com/20260214141554.png)

カード内には、表示したいビジネスフィールド（関係フィールドを除く）や承認関連情報を自由に配置できます。

承認がこのノードに入ると、待機センターのリストにカスタマイズされたタスクカードが表示されます。

![20260214141722](https://static-docs.nocobase.com/20260214141722.png)

## ノード結果

承認が完了すると、関連するステータスとデータがノード結果に記録され、後続のノードで変数として使用できます。

![20250614095052](https://static-docs.nocobase.com/20250614095052.png)

### ノード承認ステータス

現在の承認ノードの処理ステータスを表し、結果は列挙値です。

### 承認後のデータ

承認者が操作フォームで承認内容を変更した場合、変更されたデータはノード結果に記録され、後続のノードで使用されます。関係フィールドを使用する必要がある場合、トリガーで関係フィールドのプリロードを設定する必要があります。

### 承認履歴

> v1.8.0+

承認処理履歴は配列であり、このノード内のすべての承認者の処理履歴が含まれます。各処理履歴には以下のフィールドが含まれます。

| フィールド | タイプ | 説明 |
| --- | --- | --- |
| id | number | 処理履歴の一意の識別子 |
| userId | number | この履歴を処理したユーザーID |
| status | number | 処理ステータス |
| comment | string | 処理時のコメント |
| updatedAt | string | 処理履歴の更新時間 |

必要に応じて、これらのフィールドを変数として後続のノードで使用できます。