【Bizrobo! ロボットを安定化させたい方必見!】ガードチョイスうまく使えていますか?安定化しない処理3選と改めてガードチョイスに関して

こんにちは!RPAエンジニアのAです。
普段はお客様先で開発、運用・保守などやってます!

今回はロボットは作れるようになったけど、今一つ安定しない。。。という方に向けて
安定しない処理3選とそれに対しての改善案について話していきます!

■安定しない処理3選

1.待機処理なしでショートカットキー処理をする。

ショートカットキーでの処理は要素を認識して処理しないので処理が速い分、
空振りが発生しやすいです。

対応策としては、プレスキーの処理の対象になる要素を認識して待つようにLocationFoundを入れてみましょう。
実はクリック処理に関してはLocationFound→マウス移動→クリックとなっているので、
同じようにLocationFoundで対象があることを認識させてからショートカットキー処理を
することで安定化することが多いです!

2.アプリケーションの起動完了までの待機や読込の待機がすべて秒待機

秒待機を使うこと自体もちろん間違いじゃないです。むしろ一番簡単な方法だと思います。
ただ秒待機だけでは、日によってばらつきが出たときに簡単にエラーになりやすいです。

対応策としてはTreeStopChangingやLocationFoundなどを使って要素の変更が止まるまで
待ったり、要素が認識できるまで待てるようにしましょう!

補足としてガードチョイスのWhenSecondshavePassed(秒待機)以外は必ずタイムアウトの
設定を加えましょう。(無限待機につながります。)

3.クリックやプレスキーの後に待機処理がなく次の処理が組まれている

これは次の処理でロボットがうまく待てずにエラーになりやすいです。

対応策としては処理が終わったことを認識させるためにLocationNotFoundや
ApplicationNotFoundを後ろにつける、また処理の頭にはLocationFoundや
ApplicationFoundをつけることで安定化します。

■ガードチョイスに関して

では、色々な状況に対してどのガードを使えばいいのかを含めて改めてガードチョイスに関してお話します! 

 ガードチョイスそもそもは、「設定した条件が満たされた時に通過し、後続のステップに進みます。*1」
つまり、指定の条件を満たすまで待つステップです。

ではそれぞれの説明と例を箇条書きでお伝えします!

・ApplicationFound
→対象のアプリケーションが認識できるまで待つ
例)アプリケーションの起動時

・LocationFound
→対象のアプリケーションの要素(ボタンなど)が認識できるまで待つ
例)プレスキーの処理前、なにか処理をして画面遷移が発生する場面

・ApplicationNotFound
→対象のアプリケーションが認識できない状態まで待つ
例)アプリケーションとして認識している画面の終了時 (Excelのジャンプ画面など)

・LocationNotFound
→対象のアプリケーションの要素(ボタンなど)が認識できない状態まで待つ
例)ボタンをクリックして画面遷移が発生するなど

・LocationRemoved
→対象のアプリケーションの要素(ボタンなど)が表示してから消えるまで待つ
例)データ検索中の画面や読込画面など

・TreeStopChaging
→対象のアプリケーションの動きが止まるかつ、指定時間すぎるまで待つ
例)画面の読込や画面遷移が発生する際

・WhenSecondshavePassed
→指定時間すぎるまで待つ。
例)TreeStopChagingなどではエラーが発生してしまう場合

こうやって見ると実は結構種類がありますね。 *1「Guarded Choice(ガードチョイス)の特徴」(BizRobo! ナレッジベース)より

■まとめ

ロボットは作れるようになったけど、安定しなくてかえって手間が増えている。。。

そんな状況はしんどいと思います。そこで、この記事を通してガードチョイスを使いこなして
安定化したロボットを作っていただければ幸いです。

■参考文献
「Guarded Choice(ガードチョイス)の特徴」
サイト名:BizRobo! ナレッジベース
企業名:オープン株式会社
更新日:2024年03月08日 18:21

URL:https://knowledge.bizrobo.com/hc/ja/articles/360032997271-Guarded-Choice-%E3%82%AC%E3%83%BC%E3%83%89%E3%83%81%E3%83%A7%E3%82%A4%E3%82%B9-%E3%81%AE%E7%89%B9%E5%BE%B4