Help us understand the problem. What is going on with this article?

【UiPath】似て非なるMonitor eventsとPick(Pick Branch)の違いを解説

More than 1 year has passed since last update.

UiPath Academyの最後の方にちょっとだけ登場したMonitor eventsとPick(Pick Branch)。
どちらも「いくつかの条件のうち、1つでもクリアしたら用意しておいたアクションを発動する」
という、イベントトリガー系のアクティビティだと思い込んでいて区別もあいまいだったのですが、
実際に使ってみると両者全く別物だとわかったので、ここで違いを整理しておきます。

Monitor eventsとPickの比較

Monitor Events Pick(Pick Branch)
条件部に設定できる
アクティビティの種類
Trigger系アクティビティ。
つまりマウスクリックやキー押下などの人間の動作がアクションのトリガーになる。
Trigger系 じゃない方の アクティビティ。
つまり人間の動作はトリガーにならない。
アクション発動の条件 複数のTriggerのうち、1つでもクリアしたら発動。ただし発動するアクションはどのTriggerでも共通 複数のPick Branchの条件部を一斉に実行し、一番最初に終了したPick Branchのアクションを発動。
アクション発動後の振る舞い 条件の監視に戻る=エンドレスに繰り返し
※オプションで、1回の発動で終了するように変更可能
1回アクション発動したら終了
アクティビティの出自(小ネタ) UiPath独自 Windows Workflow Foundationのコンポーネント

Pickはイベントトリガーではなく、「ビーチフラッグクイズ」みたいなイメージですね。
それぞれの回答者(Pick Branch)が一斉にフラッグに向かって走り出して、
一番にフラッグを取った人がクイズの回答権を得る、みたいな。
この後は、それぞれの実例を踏まえながら具体的な解説をしていきます。

Monitor Eventsの解説

こんなイメージです。
Monitor.png

実例として、10年以上前に「外人4コマ」としてネタに使われた画像で遊んでみます。
gaijin.jpg

手前のピア・シュナイダー氏のどちらかの顔をクリック(Click Image Trigger)すると
メッセージ表示するワークフローを作ります。
monitor.png
実行して顔をクリック。はい出た。
pia1.png
オプションのRepeatForeverはデフォルトTrueなので、ワークフローは常に動き続け、
顔をクリックする度に何度でもメッセージ表示されます。
発動するアクションは共通なので、クリックした顔によってメッセージを変える事はできません。

Pick (Pick Branch)の解説

こんなイメージです。
Pick1.png

Pick2.png

ここでも外人4コマで遊んでみます。
2つのPick Branchを使ってE3 2003と2004のシュナイダー氏それぞれの顔をImage Existsで検出させて、
先に検出した方のメッセージを表示させます。
Monitor Eventsのように「ユーザーがXXしたら」という条件は使えません。
トリガーを引くのはユーザーじゃないのです。
pick.png
実行結果。まあ面白くない。
Pia2.png

Pickの大事なポイント3点

  1. 今回は顔の検出にImage Existsを使いましたが、とにかく早く検出して条件部を終了させればいいので、検出のアクティビティはImage ExistsでもFind Imageでもどっちでも良いです。
  2. Pick Branchの条件部がSequenceになっています。という事は条件部に複数のアクティビティを設定できるということです。左のPick BranchはA→B→Cで発動、一方で右のPick BranchはDだけで発動、という全く異なる設定が可能です。
  3. Pickは1回のアクション発動で終了してしまうので、 常駐プロセスとして繰り返し実行させたい場合は↓のようにループさせる必要があります。 flowchart.png

今回はここまで。
Pickの方は別の機会にもっと掘り下げて、面白い使い方を見つけたいと思います。

UmegayaRollcake
UiPath Academyの外堀を浅く埋める形でUiPathネタを書いていこうと思ってます。
https://www.youtube.com/channel/UCdo1xFEK-wRiVIQDs2cdvUg
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away