UiPathでは仕様上、条件分岐(if)を繰り返すようなワークフローをシーケンスで書く場合、分岐の入れ子がどんどん深くなっていきます。
複雑な分岐はフローチャートで書くのが王道ですが、ここではシーケンスを使っても比較的スッキリ書ける方法を紹介します。
概要
以下の処理を実行するワークフローを作成します。
- 処理Aを実行する
- 処理Aの結果がOKであれば処理Bを実行、NGであれば処理Dまでスキップ
- 処理Bの結果がOKであれば処理Cを実行、NGであれば処理Dまでスキップ
- 処理Dを実行
フローチャートで書く場合
以下の形で書けます。
視覚的にもわかりやすいのでこれで書けるのが一番良いですが、時にはシーケンスで分岐が必要なケースもあるかと思います。
シーケンス:条件分岐で書く場合
シーケンスで条件分岐(if)を使い書くと以下のようになります。
条件分岐(if)の中に条件分岐(if)が入っています。
分岐が2つなのでまだ良いほうですが、分岐が増えるごとにさらに入れ子構造が深くなっていきます。
シーケンス:分岐と繰り返しを合わせて書く場合
条件分岐に加え「繰り返し(指定回数)」と「繰り返しを終了」を使い書いたのが以下の形です。
繰り返しを使用していますが実際に繰り返す必要はないので、「繰り返し(指定回数)」を使い指定回数には1を指定します。
分岐の条件は上記の「シーケンス:条件分岐で書く場合」と同じですが、Elseに入った場合に「繰り返しを終了」を実行し、以降の処理をスキップして繰り返しを抜けるようにしています。
これにより、「処理AがOKでなければ処理Dに移る」、「処理BがOKでなければ処理Dに移る」という処理を条件分岐を入れ子にせずに書くことができています。
動作環境
UiPath.System.Activities 24.10.3