そんなふうに考えていた時期が、私にもありました。
一度動いたロボットが止まるのは、ロボット作成の技術が低いからだろ!と。
なぜ最初は、そう考えていたのか?
RPAエンジニアとして、ロボットを作成、何度もテストを繰り返し、完成形へと進めていきます。
このテストの中で、1度スムーズに最後まで走ったロボットが止まる場合、ほとんどがパソコン側の処理(アプリやWindows自体)がもたつき、RPAツールの処理信号が先走って発出されてしまうことだと知りました。
それへの対応として、一般的な手法としては、RPAツール側を「待機」させることです。
例えば、「はい」というボタンを押すという処理がある場合、ロボットが先走ると、ちゃんと「はい」を押せずに結果としてエラーが発生します。
その対策として、
①数秒間の「待機」パーツを置く
②該当の「はい」が表示される小窓が開くまで待機するパーツを置く。(そして、すぐにクリックのパーツを置く)
③Retry機能を使う
といった対策をします。
基本、これで大体は解決します。
なので、こういったパーツを適切に配置していけば、問題解決できる!と考えていました。
現実には?
上記のような対策を施し、自分のパソコン(開発用)では、何十回走らせてもエラーが出ないことを確認します。(実際には、この他にも「意地悪テスト」や「ボリュームテスト」と呼ばれるものも行います。)
利用者のパソコンでもロボットを走らせてみて、ちゃんと走ることを確認。
そして、利用者へ納品完了!
***翌日***
利用者「あのー、途中でロボットが止まるんですけど。。。」
なんで!?
根本的な理由を言えば、RPAツールは、それ単品で動いている訳ではないからです。
RPAツールを使って、Windowsの操作を代行させてたり、Excelを計算させたり、その他のアプリケーションを操作させたりしている訳です。
なので、RPAツール自体は、ちゃんと仕事をしていても、その他の要因により容易にエラーが起こるのです。
ロボットが止まる要因
①ネットワーク上の問題
個人であればインターネット、法人であれば社内ネットワーク&外部ネットワークでしょうか。
つまり、自分のパソコンではないところに保存されているアプリケーションやファイル、こういったものをRPAツールで操作する場合、ネットワーク上の遅延問題などが重なってエラーが起こることがあります。
特に規模の大きな会社ほど、社内ネットワークにぶらさがっているパソコンの台数が多いため、回線状況が悪いことも珍しくありません。
そのため、朝9時頃や夕方17時といった「みんながパソコンを使う時間帯」になると、目に見えてパソコンのレスポンスが悪くなることもよくありますね。
また、仮想デスクトップといわれる、他のパソコン・サーバで動いているものをRPAで処理する時も、挙動が不安定になりがちで、RPAエンジニア泣かせと言えます。
少しでも完走率を上げる方法としては、「RPA用のパソコンは無線接続ではなく、有線接続(LANケーブル接続)にする」といったことぐらいでしょうか。
②RPAツールがインストールされているパソコンの調子が悪い
不思議なもので、パソコンなんてどのパソコンでも使っているパーツはほぼ同じなのに、個体差があるのです。
同じ型番のパソコンなのに、体感的に処理速度の違いを感じることもあります。
私が以前体験したものだと、とてもハイスペックなパソコンなのに、特定のアプリケーションが頻繁にフリーズするのです。
手作業でのんびりと起動させる場合には問題なかったのですが、RPAツールの高速処理にかけると、何故か待機を入れても高頻度でフリーズするといったことがありました。
利用者の人に聞くと、「確かにこのパソコン、(RPAを使わない時でも)時折変なエラーが出ているんです。」とのことでした。
こういった場合どういった対応をするのか?と言われれば、もうWindowsの再インストールから試すしかないのではないでしょうか!?
③利用環境の突然の変化
ありがちなのは、Windowsの大型アップデートでしょうか。
例えば、今まで「Alt + O」で選んでいたものが、突然なくなってしまう、もしくは違う対象を選んでしまうように設定が変更されてしまうといったことがあります。
他のアプリケーションにおいても同じで、自動バージョンアップによる弊害で、いままでの設定では上手く機能しなくなるということは、それなりの頻度であります。
人間がキーボードとマウス操作で触っていた場合には、気にならない変化でも、ロボットには致命的なものになります。
以上、3つ挙げてみました。
③に関しては、「すぐに修正すれば良い」という話なので、大した問題ではありません。
問題は、①と②です。
ここに関しては、RPAツールの設定云々の話で解決しないので、かなり厄介です。
かといって、お客様に対して「パソコンを新しく購入してください。」とか、「ネットワークの回線を太くしてください。」といったお金のかかる話をお願いするのも難しいものです。(もちろん、そうすれば必ず改善する!と約束も出来ませんが。)
対症療法として、止まる場所にとにかく「待機」を入れていくという方法を採るくらいしかありませんが、そうすると今度はロボット全体の処理速度が落ちるという事態になります。
あちらを立てれば、こちらが立たず。
まあ、それでもまだ最後まで走り切れば良いのですが。
根本的な部分に手を付けられない場合、止まるごとに該当箇所へ「待機」を入れていくことと、「時間を変えて、何度かロボットを走らせてみてください。」ということになってしまうのです。