# 多条件分岐 <Badge>v2.0.0+</Badge>

## 概要

プログラミング言語の `switch / case` や `if / else if` 文に似ています。システムは設定された複数の条件を順番に評価し、いずれかの条件が満たされた場合、対応する分岐のワークフローを実行し、それ以降の条件チェックはスキップします。すべての条件が満たされない場合は、「それ以外」の分岐が実行されます。

## ノードの作成

ワークフロー設定画面で、フロー内のプラス（「+」）ボタンをクリックして、「多条件分岐」ノードを追加します。

![多条件分岐ノードを作成](https://static-docs.nocobase.com/20251123222134.png)

## 分岐の管理

### デフォルトの分岐

ノード作成後、デフォルトで2つの分岐が含まれます。

1.  **条件分岐**：具体的な判定条件を設定できます。
2.  **それ以外分岐**：すべての条件分岐が満たされない場合にこの分岐に入ります。条件設定は不要です。

ノードの下にある「分岐を追加」ボタンをクリックすると、さらに条件分岐を追加できます。

![デフォルトの分岐](https://static-docs.nocobase.com/20251123222540.png)

### 分岐の追加

「分岐を追加」をクリックすると、新しい分岐は「それ以外」分岐の前に追加されます。

![分岐の追加](https://static-docs.nocobase.com/20251123222805.png)

### 分岐の削除

複数の条件分岐がある場合、分岐の右側にあるゴミ箱アイコンをクリックすると、その分岐を削除できます。条件分岐が1つしか残っていない場合は、削除できません。

![分岐の削除](https://static-docs.nocobase.com/20251123223127.png)

:::info{title=ヒント}
分岐を削除すると、その分岐内のすべてのノードも同時に削除されますので、ご注意ください。

「それ以外」分岐は組み込みの分岐であり、削除できません。
:::

## ノードの設定

### 条件の設定

分岐の上部にある条件名をクリックすると、具体的な条件内容を編集できます。

![条件の設定](https://static-docs.nocobase.com/20251123223352.png)

#### 条件ラベル

カスタムラベルをサポートしており、入力するとフローチャートに条件名として表示されます。設定されていない場合（または空の場合）は、デフォルトで「条件 1」、「条件 2」などが順番に表示されます。

![条件ラベル](https://static-docs.nocobase.com/20251123224209.png)

#### 演算エンジン

現在、3種類のエンジンをサポートしています。

-   **基本**：シンプルな論理比較（例：等しい、含むなど）と「AND」、「OR」の組み合わせによって、判定結果を導き出します。
-   **Math.js**：[Math.js](https://mathjs.org/) の構文を使った式計算をサポートしています。
-   **Formula.js**：[Formula.js](https://formulajs.info/) の構文を使った式計算をサポートしています（Excelの数式に似ています）。

これら3つのモードはすべて、ワークフローのコンテキスト変数をパラメーターとして使用できます。

### すべての条件が満たされない場合

ノード設定パネルで、すべての条件が満たされない場合の次のアクションを設定できます。

![すべての条件が満たされない場合のアクション](https://static-docs.nocobase.com/20251123224348.png)

*   **ワークフローを失敗として終了する（デフォルト）**：ワークフローのステータスを失敗としてマークし、プロセスを終了します。
*   **後続ノードの実行を続行する**：現在のノードの実行が完了した後、ワークフローの後続ノードの実行を続行します。

:::info{title=ヒント}
どの処理方法を選択した場合でも、すべての条件が満たされない場合、フローはまず「それ以外」分岐に入り、その中のノードを実行します。
:::

## 実行履歴

ワークフローの実行履歴では、多条件分岐ノードは各条件の判定結果を異なる色で表示します。

-   **緑色**：条件が満たされ、この分岐に入って実行されました。
-   **赤色**：条件が満たされない（または計算エラーが発生した）ため、この分岐はスキップされました。
-   **青色**：判定が実行されませんでした（前の条件がすでに満たされたため、後続の判定はスキップされました）。

![実行履歴の表示](https://static-docs.nocobase.com/20251123225455.png)

設定エラーにより条件計算で例外が発生した場合、赤色で表示されるだけでなく、条件名にマウスカーソルを合わせると、具体的なエラー情報が表示されます。

![エラー情報の表示](https://static-docs.nocobase.com/20251123231014.png)

条件計算で例外が発生した場合、多条件分岐ノードは「エラー」ステータスで終了し、後続のノードは実行されません。