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の解説
実例として、10年以上前に「外人4コマ」としてネタに使われた画像で遊んでみます。
手前のピア・シュナイダー氏のどちらかの顔をクリック(Click Image Trigger)すると
メッセージ表示するワークフローを作ります。
実行して顔をクリック。はい出た。
オプションのRepeatForeverはデフォルトTrueなので、ワークフローは常に動き続け、
顔をクリックする度に何度でもメッセージ表示されます。
発動するアクションは共通なので、クリックした顔によってメッセージを変える事はできません。
Pick (Pick Branch)の解説
ここでも外人4コマで遊んでみます。
2つのPick Branchを使ってE3 2003と2004のシュナイダー氏それぞれの顔をImage Existsで検出させて、
先に検出した方のメッセージを表示させます。
Monitor Eventsのように「ユーザーがXXしたら」という条件は使えません。
トリガーを引くのはユーザーじゃないのです。
実行結果。まあ面白くない。
Pickの大事なポイント3点
- 今回は顔の検出にImage Existsを使いましたが、とにかく早く検出して条件部を終了させればいいので、検出のアクティビティはImage ExistsでもFind Imageでもどっちでも良いです。
- Pick Branchの条件部がSequenceになっています。という事は条件部に複数のアクティビティを設定できるということです。左のPick BranchはA→B→Cで発動、一方で右のPick BranchはDだけで発動、という全く異なる設定が可能です。
- Pickは1回のアクション発動で終了してしまうので、
常駐プロセスとして繰り返し実行させたい場合は↓のようにループさせる必要があります。
今回はここまで。
Pickの方は別の機会にもっと掘り下げて、面白い使い方を見つけたいと思います。