【Bizrobo !】GuardedChoiceの利用方法を知ろう

皆さんこんにちわ。開発エンジニアのTです。
4月になり外出するにはちょうど良い気温になってきましたね。

暖かくなるのが少し早かったのか、今年は桜の時期の訪れが少し早かった気がします。
さて本題についてですが、今回はGuardedChoiceの利用方法についてご紹介させて頂こうと思います。

GuardedChoiceとは

GuardedChoiceはDesktopAutomation(DA)で利用する条件判定ステップです。
主に以下の判定に利用します。

・時間の経過
・アプリケーションの存在有無
・ロケーションの存在有無
・表示内容の更新停止

今回は存在有無の判定を中心に例を交えつつ説明したいと思います。

例えば、該当のウインドウ(アプリケーション)が起動していることを、
GuardedChoiceのApplicationFoundを利用して判定することができます。

次の画像の様にOpenステップでアプリケーションを起動した際などに、
アプリケーションが起動したという判定としてApplicationFoundを設定します。

また、GuardedChoiceには複数の条件を設定することができます。
次の画像では①「アプリケーションが起動した」②「60秒経過した」の2つの条件を設定しています。
複数の条件を指定した場合、先に条件を満たした側の後ろに続くステップが実行されることになります。

条件が満たされるまでGuardedChoiceの実行は継続します。
つまり、「アプリケーションが起動した」「60秒経過した」という条件を設定した場合、
言い換えると「アプリケーションが起動するまで最大60秒間待機する」という処理になります。

ここまで存在判定(Found)について説明してきましたが、非存在判定(NotFound)についても基本的な考え方は同じです。

下の画像はウインドウを閉じた際に、ウインドウが消えたことを判定するためのGuardedChoiceです。

注意点として、非存在判定(NotFound)は既に存在しているアプリケーションやロケーションが消えたことを
判定する際に利用するという事を意識しておいた方が良いと思います。

例えば、ボタンを押下した際に”稀に”メッセージが表示されることがあるといった判定の場合、
ポップアップをApplicationNotFoundで判定してしまうと、ポップアップの起動よりも早く
NotFoundを判定してしまい誤動作に繋がることがあります。

■ポップアップを非存在判定(NotFound)で判定した場合

下の画像の様にApplicationNotFoundで判定した場合、GuardedChoiceの判定としては
「ポップアップが存在しない事を最大60秒間確認」となります。

しかし、ボタンをクリックしてからポップアップが画面に表示されるまでに1秒かかってしまったら、
ボタンをクリックした直後にはポップアップは存在していない訳ですからGuardedChoiceは
NotFoundの条件を満たして後ろのステップに進んでしまい、ポップアップを閉じるステップが実行されません。

■ポップアップを存在判定(Found)で判定した場合

下の画像の様にApplicationFoundで判定した場合、GuardedChoiceの判定としては
「ポップアップが存在する事を最大5秒間確認」となります。

ポップアップが表示されなかった場合、When seconds have passedの5秒経過が条件として満たされ、
5秒後に後ろのステップに進みます。

存在していないものを存在判定(Found)で確認するという判定方法になり、非存在時は必ず5秒待機が発生してしまいますが、
非存在判定(NotFound)で判定するより安定した動作になるのではと思います。


如何だったでしょうか?安定したロボット作りの参考になれば幸いです。
最後までご覧いただきありがとうございました。