(UiPath超初心者向け)条件で処理を分岐させる

By | 2018年7月16日

(UiPath超初心者向け)条件で処理を分岐させる

※2018.3よりUiPathがデフォルト日本語のアクティビティ名となりましたので、
この記事では各アクティビティや機能名を日本語名(英語名)というように記載しています。

UiPathでは条件分岐のアクティビティを使うことで、処理を途中で分岐させることができます。
条件分岐アクティビティはワークフローの作り方によって2種類あります。
フローチャート(FlowChart)で作る場合はフロー条件分岐(Flow Decision)、シーケンス(Sequence)で作る場合はIfを使用します。

1.フロー条件分岐(Flow Decision)

 

おそらく一番スタンダードな作り型がこちらのフロー条件分岐(Flow Decision)になります。
フローチャート(FlowChart)でワークフローを作成するときに使用可能で、
見た目で分岐していることが解りやすいことが特徴です。
後から見たときに修正等も行いやすいです。また、分岐からさらに分岐するパターン等、
複雑な変化があった場合も、矢印に沿っていけば流れが追いやすいです。

条件はプロパティの条件(Condition)に、答えがTrueかFalseとなる条件式を書くか、
もしくはTrueかFalseの入っているBoolean型変数を指定します。

2.条件分岐(IF)

もう一つの方法が条件分岐(If)で、こちらはシーケンス(Sequence)の中で分岐を行います。
シーケンス(Sequence)の特徴として、細かいアクティビティの処理が見えることから、
作業単位でなく、処理単位で何が行われているかが一目瞭然となります。
その反面、処理が多いと上下が長くなってしまったり、
分岐を繰り返すと際限なくシーケンス(Sequence)が縦に二分割されてしまい、元の処理の流れに戻すことが困難になったり、
デバッグしないとどこを処理しているのか追いづらいなど、制約も多いです。

こちらはアクティビティの中に条件(Condition)を書くことができます。

3.フロースイッチ(Flow Switch)

上記で紹介したフロー条件分岐(Flow Decision)や条件分岐(If)は2つの分岐しか行うことができません。
もしさらに分岐したい場合はどちらかの分岐の下に分岐を足していく形になります。
しかし、このやり方の場合は多数の分岐があると非常に見た目が悪くなってしまい、
メンテナンスもしづらくなります。そう言った場合はフロースイッチ(Flow Switch)を使うことで、
複数の条件分岐を1度で行うことができます。(FlowChartの場合)

基本的には2つの時と同じですが、どれにも当てはまらなかった場合のdefaultというケースを設定できることや、
どの型の変数を判定条件として使用するか指定する必要があります。

TypeArgumentで、どの型を使うか指定します。
判定結果が数値であればInt32を、
文字列の場合は上記のようにStringを使います。

分岐の矢印を増やすと、デフォルトでケース(Case)*が指定されますので、
プロパティを表示させて、判定させた結果として期待される数値を入れていきましょう。

4.スイッチ(Switch)

フローチャート(FlowChart)で複数分岐させる場合はフロースイッチ(Flow Switch)ですが、
シーケンス(Sequence内)で複数分岐させる場合はスイッチ(Switch)アクティビティを使用します。
縦分割もなくなり、各ケース(Case)は選択しないと中が見られないため、これを使うメリットもあまりないですが、
フロースイッチ(Flow Switch)と同じことが可能です。

Flow Switchと同様に、プロパティのTypeArgumentで判定条件の型を指定して使います。


式(Expression)には判定式や判定結果が入った変数を指定しましょう。

(おまけ)スイッチ系処理の注意点

フロースイッチ(Flow Switch)および、スイッチ(Switch)の設定をする際、注意する点が一つあります。
下はフロースイッチの場合の設定場所

こちらはスイッチのケース名設定場所です。

ケースの設定時、唯一UiPathの中でここだけ、
String(文字列)に””(ダブルクォーテーション)をつけてはいけません
つまり何が言いたいかというと、ケースで指定する条件が文字列の場合、
ダブルクォーテーションをつけると望んだ動作をしません
(本来「A」で判定したいのに「”A
”」というダブルクォーテーション付の文字として判定する)
はっきり言って非常にわかりづらい仕様です。
判定用変数の値は合っているはずなのにいつまでたってもちゃんと分岐しない場合、ここを疑ってください。