【Bizrobo! ロボットを安定化させたい方必見!】ガードチョイスうまく使えていますか?安定化しない処理3選と改めてガードチョイスに関して
![](https://cdn.getshifter.co/821fc30266d87832f69bd29b834263a1374d6632/uploads/2024/06/BizRobo-ガードチョイスでロボット安定化.png)
こんにちは!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