StudioXのアクティビティ

UiPath StudioXの共通アクティビティ【制御】

2021/07/20

StudioXが市民開発者向けとは言え、プログラミングしていることに変わりありません。

ところで、プログラミングの基本には3つの制御構造「順次」「分岐」「反復」があります。

StudioXでも、この3つの制御構造で組み立てられるよう、構造に関するアクティビティが用意されています。

「分岐」、「反復」に関するアクティビティについては、別途まとめた記事を用意していますので、是非参考にしてください。

(「順次」は、順番に処理するという意味なので、2つ以上アクティビティを並べたら、それでもう順次構造ですので説明不要でしょう。)

記事編集時のStudioX - ver2023.4.0

制御のアクティビティ

  • Delay
  • If
  • 条件分岐(else if)
  • 条件分岐(switch)
  • 繰り返し(指定回数)

Delay

指定した秒数の間、ワークフローを一時停止します。(ガイドはこちら)

処理実行の途中で、指定時間一時停止します。

ここでは、[Duration]について解説します。

Dulation

停止する時間を指定します。

基本は、テキストボックスの数値を直接入力します。

変更したい範囲にカーソルを置き、上下ボタンで増減も可能です。

変数の値をDurationに指定

直接時間を指定するのではなく、変数に代入した値を利用したい場合、期間型(TimeSpam)を使用すると可能です。

指定できる最大時間は、59分59.999秒です。

ところで、[Delay]の使いどころとは、どのようなケースがあるのでしょうか。

おそらく、[アプリ/Web]アクティビティで、テキスト入力やクリック、キーボードショートカットの前に、設置することが多いでしょう。

例えば、クリックした後、間髪を容れずにテキスト入力をした場合に、文字入力をミスしてしまう場合があります。

そんな時に、[Delay]アクションで1秒程度停止させてみるのが安定するコツだったりするので、試してみてください。

複雑な動き(モーダレスや非同期など)をするWebサイトの場合に、[Delay]を使うことが多いですね。
おぐし

If

条件ビルダーを使用して追加した条件を評価し、条件が満たされる場合はThen分岐のアクティビティを、条件が満たされない場合は任意のElse分岐のアクティビティを実行します。(ガイドはこちら)

条件に当てはまる場合は[Then]内のアクティビティを実行し、当てはまらない場合は[Else]内のアクティビティを実行します。

ここでは、以下の項目について解説します。

  • Condition
  • [Then]と[Else]

[If]アクションについては、こちらでも別途解説しています。

[If]アクション

Condition

「もし○○なら」の○○の部分、つまり条件を指定します。

条件を指定するには、条件ビルダーを使用すると便利なのですが、”"をクリックすると、条件ビルダーが表示されます。

例えば、変数"年齢"があり、値が18以上かどうかを判定する場合は以下のとおり。

また、複数の項目で判定する場合は[追加]ボタンをクリックすると追加されます。

もう1つリストボックスが追加されていますね。

こちらは、複数の条件判定がすべて当てはまる必要があるのか(AND条件)、いずれかひとつ当てはまればよいのか(OR条件)を切り替える項目です。

例えば自動車免許は、技能試験が70点以上、学科試験が90点の両方を満たす必要があります。

この場合には"すべての条件に一致(AND)"を使用します。

"いずれかに一致(OR)"は、例えば、保有資産1億円以上か、年収2千万以上稼いでいるかのどちらかであればお金持ちと呼ばれる、などのケースでしょうか。

(個人的見解なので、実際はそうじゃないかもしれませんが。)

[Then]と[Else]

[Condition]に指定した条件に当てはまる場合、[Then]内に追加したアクティビティを実行します。

そして、[Condition]の条件に当てはまらない場合は[Else]内のアクティビティを実行します。

条件分岐(else if)

If-Then-ElseIf-Else条件を形成します。(ガイドはこちら)

指定した条件に当てはまる場合は、[Then]内のアクティビティを実行します。

当てはまらない場合、[Else If]の条件を評価し、その条件に当てはまれば[Else If]内のアクティビティを実行します。

どの条件にも当てはまらない場合、[Else]内のアクティビティを実行します。

ここでは、以下の項目について解説します。

  • 条件
  • Then
  • Else If
  • Else

条件

「もし○○なら」の○○の部分、つまり条件を指定します。

条件を指定するには、条件ビルダーを使用すると便利なのですが、[+]-[条件ビルダー]をクリックすると表示されます。

例えば、変数"電話番号"があり、値から03で始まる番号かどうかを判定する場合は以下のとおり。

また、複数の項目で判定する場合は[追加]ボタンをクリックすると追加されます。

もう1つリストボックスが追加されていますね。

こちらは、複数の条件判定がすべて当てはまる必要があるのか(AND条件)、いずれかひとつ当てはまればよいのか(OR条件)を切り替える項目です。

例えば文武両道という言葉は、学問と運動の両方とも優れた人のことを指しますが、このような場合には"すべての条件に一致(AND)"を使用します。

もうひとつ例を。夜の時間帯は、3時以前、もしくは18時以降のどちらかを指します。

このようなケースで、"いずれかに一致(OR)"を使用します。

Then

[条件]に指定した内容に当てはまる場合、[Then]内に追加したアクティビティを実行します。

Else If

ちょっと日本語訳がおかしいようですが、[Else If]は、左下にあるボタンをクリックし、"Else If"を選択すると追加されます。

最初に指定した[条件]の内容を満たさない場合、[Else If]に指定した条件を評価します。

そして、その条件を満たしていたら、[Else If]の下段にある[Then]内に追加したアクティビティを実行します。

[Else If]は、いくつでも追加可能なので、分岐している条件の数だけ追加するといいでしょう。

Else

[Else If]同様、[Else]も左下にあるボタンをクリックし、"Else"を選択すると追加されます。

[Then]や、[Else If]の条件がすべて当てはまらない場合、[Else If]内に追加したアクティビティを実行します。

[条件分岐(else if)]で、ほかの条件分岐アクティビティ[If]、[条件分岐(switch)]もまかなえてしまいますね。
おぐし

条件分岐(switch)

どのケースが指定した式に一致するかに基づき、複数の定義されたケースのうち1つのケースに追加したアクティビティを実行します。(ガイドはこちら)

評価する対象[Expression]が、どの[Case]に当てはまるかを評価し、合致するCase内のアクティビティを実行します。

[条件分岐(else if)]と似ていますが、[条件分岐(switch)]だと用途が限られますね。

ここでは、以下の項目について解説します。

  • Expression
  • Default
  • 新しいCaseを追加
  • TypeArgument

[条件分岐(switch)]アクションについては、こちらでも別途解説しています。

[条件分岐(switch)]アクション

Expression

評価する値を指定します。

上図では変数を参照していますが、もちろん、[ノートブック]や[クリップボード]、[実行時に確認]などを指定する場合もあるでしょう。

Default

[Expression]に指定した値が、Caseに挙げた項目のいずれにも該当しない場合、[Default]内に追加したアクティビティを実行します。

新しいCaseを追加

[Expression]が取る値の候補を追加します。

[新しいCaseを追加]のテキスト部分をクリックすると入力モードになるので、候補となる値を入力してください。

入力完了すると、アクティビティ追加可能な領域が展開されます。

[Expression]が追加したCaseの値と一致した場合に実行するアクティビティを、追加しましょう。

[条件分岐(else if]と違い、[Expression]と[Case]の値が一致したときのみになります。以上/以下のように、範囲を指定したり複数の条件を掛け合わせることはできません。
おぐし

Caseを削除する方法

間違ってCaseを追加した場合に削除する方法は、範囲内で右クリックし、[削除]を選択すれば削除されます。

TypeArgument

評価する値([Expression])の属性を変更したい場合に、変更したい属性を選択します。

基本的に、規定値のテキスト型(String)から変更する必要はないでしょう。

 

繰り返し (指定回数)

一連のアクティビティを指定した回数だけ繰り返します。繰り返したいアクティビティをこのアクティビティの中に追加してください。(ガイドはこちら)

回数を指定して、一連の処理を繰り返します。

ここでは、以下の項目について解説します。

  • 繰り返し
  • 繰り返し(指定回数)
  • 開始の値

[繰り返し(指定回数)]アクションについては、こちらでも別途解説しています。

[繰り返し(指定回数)]アクション

繰り返し

現在の処理は何周目か?を確認できるよう用意されているカウンターで、変数"CurrentItem"に記憶されます。

初期値の変数名は"CurrentItem"ですが、目的に応じて変更しても構いません。

なお、"CurrentItem"は、[繰り返し(回数指定)]内に追加したアクティビティでのみ参照できます。

繰り返し(指定回数)

一連の処理について、繰り返す回数を指定します。

ちなみに、一連の処理とは、「ここにアクティビティをドロップ」と表示されている領域に組んだアクティビティを指します。

開始の値

[繰り返し]に設定されている"CurrentItem"は、通常1からカウントされます。

もし、1以外の数値から開始したい場合には、[開始の値]を修正してください。

例えば、[開始の値]を0に指定すると、"CurrentItem"に記憶する値は0,1,2のように、ゼロからカウントが始まります。

チュートリアルのすすめ

[条件分岐]アクティビティについて、より理解を深めるため、「チュートリアル: 表の行の反復処理」を読むことをお勧めします。

また、チュートリアルを読み砕いて解説しましたので、こちらも併せて参考にしてください。

UiPath StudioXチュート読み砕き【表の行の反復処理】

続きを見る

まとめ

共通アクティビティ全般に言えることでもありますが、制御のアクティビティは、プロジェクトを自由自在に組むためには必須です。

しっかりマスターしちゃいましょう。

この記事で、何か1つでも新しい発見が得られたのなら、僕もうれしいです。

-StudioXのアクティビティ

© 2023 おぐしログのRPA入門