
Ifアクティビティとは、ロボットが実行するフローを条件によって分岐させ、条件に一致したフローを実行させる機能になります。
特定の条件の場合に片方のフローのみ実行したい、というのはほとんどのプログラムにおいて必ず発生する事象です。ロボットの動きをコントロールする上で必ず必要になってきますので条件分岐についてはしっかり理解しておくとよいと思います。
UiPathでは「If」「Flow Decision」「Flow Switch」という3つの条件分岐アクティビティがあります。このページでは「If」によるフロー制御について記載します。「Flow Decision」「Flow Switch」については下記のページを参照してください。
Contents
Ifによる条件分岐
Ifアクティビティを使用することにより、2つある実行フローのうち、一方のフローのみ実行するようにロボットに指示できます。
デザイナーパネルに配置した際に画面上に大きく表示されるため、条件の確認や遷移先フローの確認がしやすいアクティビティです。
なおIfアクティビティはシーケンスおよびフローチャートの双方で使用することが可能です。
Ifアクティビティのプロパティ
表示名称(DisplayName)
デザイナーパネル上に表示するアクティビティの名称を変更することができます。ロボットの動作には影響がありません。日本語も使用可能です。
分岐条件(Condition)
ここに分岐条件を指定します。
.NETプログラムと同様にUiPathでは「1=1」のように記載し、左辺と右辺が一致する場合は「Then」のフローを実行し、不一致の場合は「Else」に指定したフローを実行します。
文字列の場合はダブルコーテーションで括り、変数や数値の場合はそのまま記載できます。
条件一致時の遷移先(Then)
「Condition」で指定した条件に一致した場合に実行するフローです。
条件不一致時の遷移先(Else)
「Condition」で指定した条件に一致しない場合に実行するフローです。
分岐条件(Condition)の記載方法
分岐条件は.NET形式で記載することができます。以下にサンプルを記載しますので参考にしてください。
ひとつの条件のみ指定する場合
valueの値が「3」と等しい
value = 3
valueの値が「3」と等しくない
value <> 3
valueの値が「3」以上である
value >= 3
valueの値が「3」より大きい
value > 3
valueの値が「3」以下である
value <= 3
valueの値が「3」より小さい
value < 3
複数の条件を指定する場合
「AndAlso」を使用することで、AとBの二つの条件に一致するか判定することができます。
valueの値は3以上かつ10以下である
ex) 3の場合はTrue、11の場合は「False」
value >= 3 AndAlso value <= 10
「OrElse」を使用することでAもしくはBの条件に一致するかを判定することができます。
valueの値は100以上または5以下である
ex) 110の場合はTrue、20の場合は「False」
value >= 100 OrElse value <= 5
Ifアクティビティのサンプル
変数「amount」が「100」の場合にメッセージボックスを表示し、「100」以外の場合は何もしない
amount = 100
変数「amount」が「100」と等しくない場合にメッセージボックスを表示し、「100」の場合は何もしない
amount <> 100
等しくない場合の記載例2
not amount = 100
変数「amount」が「100」以上の場合にメッセージボックスを表示し、「100」未満の場合は何もしない
amount >= 100
変数「amount」が「100」以上かつ「200」以下の場合にメッセージボックスを表示し、それ以外の場合は何もしない
amount >= 100 AndAlso amount <= 200
変数「amount」が「100」以上、または「50」以下の場合にメッセージボックスを表示し、それ以外の場合は何もしない
amount >= 100 OrElse amount <= 50
まとめ
Ifアクティビティの使い方をサンプルとともに説明しました。
条件分岐を自由に指定できるようになることで、ロボットの実行フローを思い通りに操れるようになります。
なお分岐箇所についてはバグが発生しやすい箇所でもあるので、何度もデバッグ実行し想定している通りに動作しているかを必ず確認しましょう。
またフローを分岐させるアクティビティはIf以外に「Flow Switch」や「Flow Decision」などがあります。こちらも参考にしてください。