

ワークフローの分岐では、処理担当者の選択や、入力されたデータの値に応じて、進む経路を決められます。この記事では、ヒューマンタスクの分岐方法と、分岐 XOR ゲートウェイなどで使う「条件式(遷移条件)」の指定方法を説明します。Basic エディションから使える、基本的な分岐機能です(分岐 OR/分岐 AND を含むゲートウェイの使い分けは別記事「XOR / OR / AND ゲートウェイの使い分け」を参照。分岐 OR/分岐 AND ゲートウェイは Advanced エディション以上で使えます)。
ヒューマンタスクの分岐
ヒューマンタスクから出る矢印を2本以上つなぐと、その工程自体に分岐を設定できます。プロパティ画面の[分岐]タブで、「分岐タイプ」として次の2方式を選べます。
- ユーザが選択した遷移先に流す(遷移先の数だけタスク処理完了ボタン表示):担当者が押したボタンに応じてトークンの遷移先が決まります(例:「承認」「差し戻す」)。
- 最初に合致した条件の遷移先に流す(タスク処理完了ボタンは1つ):あらかじめ経路ごとに条件式を設定しておき、処理完了時に入力値が合致した経路へトークンが進みます。
承認・差し戻しのように「人が判断して進路を選ぶ」分岐は、最初の方式が最もシンプルです。条件式を使う場合の設定方法は、以下で説明します。
条件式を設定する場所
条件式(遷移条件)は、次の画面で設定します。
- 分岐 XOR ゲートウェイ:プロパティ画面
- ヒューマンタスク:プロパティ画面の[分岐]タブ
いずれの画面でも、鉛筆アイコンをクリックすると条件設定画面(ダイアログ)が開きます。ここで、条件を満たしたときに進む遷移先ノードを選びます(どの条件も満たさない場合はデフォルトフローへ進みます)。
(なお、Advanced エディション以上で使える 分岐 OR ゲートウェイも、同じ手順で条件式を設定できます。)
条件式の基本
1つの遷移条件では、データ項目を1つ指定し、その入力値に対する条件を選びます。たとえば「右の値と等しい」「右の値より大きい」などを、比較する値とあわせて指定します。指定できる条件の種類はデータ型ごとに決まっています(詳しくは R2030: 分岐での遷移条件の種類)。
例として経費申請フローでは、「合計金額が10万円より大きい」を満たす場合は上長の「承認」工程へ、満たさない場合はデフォルトフローで総務部へトークンが流れる、といった設定ができます。

条件の指定には2通りある
- データ項目と条件を選んで指定する(基本はこちら):上記のとおり、画面でデータ項目・条件・値を選ぶだけで設定できます。通常はこの方法を使います。
- SpEL(EL)式で記述する:より複雑な条件を式で書くこともできます。ただしエンジニア向けの高度な機能で、基本的には使いません(詳しくは R2031: 分岐での遷移条件に設定できる EL 式)。
デフォルトフロー
遷移条件の最下部には、削除できない「デフォルトフロー」が必ず1つあります。設定した他のどの条件も満たさなかった場合にのみ、この遷移先へトークンが進みます。これは、入力データの不足などでトークンが進めなくなるのを防ぐためです。
デフォルトフローは削除できませんが、遷移先は変更できます。「他の条件が満たされない場合」と決まっているため、条件式の設定は不要です。
複数の条件をすべて満たす(かつ)
1つの遷移条件に複数の条件式を追加すると、より複雑な条件を作れます。条件式を追加するには、条件設定画面(鉛筆で開くダイアログ)の下部にある[+]をクリックします。この場合、追加したすべての式を満たしたときだけ、指定の遷移先へトークンが進みます。
例:「件名が入力されている」かつ「数値型データが 1000 以上」。

複数の条件のいずれかを満たす(または)
「かつ」と違い、1つの遷移条件の中で「または」を指定することはできません。「または」にしたい場合は、同じ遷移先を指定した遷移条件を複数追加します([分岐]タブ最下部の[+]で遷移条件を1行追加)。こうすると、そのいずれかを満たしたときにトークンが進みます。

遷移条件は上から順に評価される
遷移条件が複数あるとき、一覧の上から順に評価され、最初に合致した行の遷移先へトークンが進みます(どれにも合致しなければ、最下部のデフォルトフローへ)。上の「または」の例のように遷移先が同じ場合は、並び順を気にする必要はありません。
順序が結果を左右するのは、遷移先の異なる条件が重なり合う場合です。たとえば「合計金額が1万円以上 → 上長承認」と「合計金額が10万円以上 → 役員承認」を設定したとき、「1万円以上」を上に置くと、20万円の申請も先に「1万円以上」に合致してしまい、役員承認へは進みません。この場合は「10万円以上」を上に置きます。
フロー構造
分岐したあとの経路は、次のいずれかの形になります。
- 分岐後に合流:分かれた経路を統合 XOR ゲートウェイで再び1本にまとめます。
- 分岐したまま終了:分かれた経路が、合流せずにそれぞれ別の終了イベントに到達します。
- ループ構造:経路がループ(巡回)し、同じ工程を繰り返します。




